<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-us" xml:lang="en-us">
<head>
  <meta charset="utf-8" />
  <meta name="generator" content="pandoc" />
  <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
  <title>tr-181-2-16-0-cwmp.xml</title>
  <style>
    code{white-space: pre-wrap;}
    span.smallcaps{font-variant: small-caps;}
    div.columns{display: flex; gap: min(4vw, 1.5em);}
    div.column{flex: auto; overflow-x: auto;}
    div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
    /* The extra [class] is a hack that increases specificity enough to
       override a similar rule in reveal.js */
    ul.task-list[class]{list-style: none;}
    ul.task-list li input[type="checkbox"] {
      font-size: inherit;
      width: 0.8em;
      margin: 0 0.8em 0.2em -1.6em;
      vertical-align: middle;
    }
  </style>
  <!-- Sidebar ToC styles -->

  <style>
  @media screen and (min-width: 60em) {
      body {
          display: flex;
          align-items: stretch;
          margin: 0px;
          /* XXX this is experimental; may need to insert zero-width spaces */
          overflow-wrap: break-word;
      }

      #main {
          flex: 4 2 auto;
          overflow: auto;
          order: 2;
          padding: 5px;
      }

      #TOC {
          position: sticky;
          order: 1;
          flex: 1 0 auto;
          margin: 0 0;
          top: 0px;
          left: 0px;
          height: 100vh;
          line-height: 1.4;
          resize: horizontal;
          font-size: larger;
          overflow: auto;
          border-right: 1px solid #73AD21;
          padding: 5px;
          max-width: 20%;
      }

      #TOC ul {
          margin: 0.35em 0;
          padding: 0 0 0 1em;
          list-style-type: none;
      }

      #TOC ul ul {
          margin: 0.25em 0;
      }

      #TOC ul ul ul {
          margin: 0.15em 0;
      }

      #TOC {
          z-index: 1;
      }
  }
  </style>

  <!-- ToC expansion and contraction script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var expandables = document.getElementsByClassName('expandable');
      for (i = 0; i < expandables.length; i++) {
          expandables[i].addEventListener('click', function() {
              this.parentElement.querySelector('.collapsed').classList
                  .toggle('expanded');
              this.classList.toggle('collapsible');
          });
      }
  });
  </script>

  <!-- ToC expansion and contraction styles -->

  <style>
  .expandable {
      cursor: pointer;
      user-select: none;
      display: list-item;
      /* Circled Plus + non-breakable space */
      list-style-type: "\2295\A0";
  }

  .collapsible {
      /* Circled Minus + non-breakable space */
      list-style-type: "\2296\A0";
  }

  .collapsed {
      display: none;
  }

  .expanded {
      display: grid; /* needed by the 'order' property */
  }
  </style>

  <!-- ToC sorting script (works for object names and profile headers) -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      /* 'A.B.' -> {prefix: '', name: 'A.B.', 'version': ''}
         '_Baseline:1' -> {prefix: '_', name: 'Baseline', version: '1'} */
      var regex = /^(?<prefix>_?)(?<name>[^:]*)(:?)(?<version>\d*)/;
      var lists = document.getElementsByClassName('ordered');
      for (var i = 0; i < lists.length; i++) {
          var items = lists[i].children;
          var temp = [];
          for (var j = 0; j < items.length; j++) {
              /* this assumes that the first child contains the text */
              temp.push([j, items[j].children[0].innerText]);
          }
          temp.sort((a, b) => {
              /* 'Notation' (which is used for profiles) must come first */
              var a1 = a[1] == 'Notation' ? ' Notation' : a[1];
              var b1 = b[1] == 'Notation' ? ' Notation' : b[1];
              var a1_groups = a1.match(regex).groups;
              var b1_groups = b1.match(regex).groups;
              var a1_tuple =  [
                  a1_groups.name.toLowerCase() + (a1_groups.prefix || '~'),
                  parseInt(a1_groups.version || 0)];
              var b1_tuple =  [
                  b1_groups.name.toLowerCase() + (b1_groups.prefix || '~'),
                  parseInt(b1_groups.version || 0)];
              return a1_tuple < b1_tuple ? -1 : a1_tuple > b1_tuple ? 1 : 0;
          });
          temp.forEach((order_text, j) => {
              var k = order_text[0];
              items[k].style.order = j;
          });
      }
  });
  </script>

  <!-- Automatic title generation (from anchor ids) script
       XXX only works for non-deprecated object parameters and doesn't
           show correct full paths; should get rid of it? -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var pars = document.getElementsByClassName('parameter');
      var regex = /\w\.\w+:[0-9.]+\./;
      for (var i = 0; i < pars.length; i++) {
          if (pars[i].firstElementChild && pars[i].firstElementChild.
                  firstElementChild) {
              pars[i].firstElementChild.title =
                  pars[i].firstElementChild.firstElementChild.id.
                  replace(regex, '');
          }
      }
  });
  </script>

  <!-- Automatic on-hover link generation script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var hoverlink = null;

      var anchors = document.querySelectorAll('td span[id]:not(:empty)');
      for (var i = 0; i < anchors.length; i++) {
        var cell = anchors[i].parentElement;

        cell.addEventListener('mouseenter', event => {
          var target = event.target;
          var anchor = target.querySelector('span[id]:not(:empty)');

          /* derive the item type from the row's first class item,
           * which might have a leading 'deprecated-' etc. and
           * might also contain additional hyphens */
          var itemType = (target.parentElement.classList.item(0) || 'item').
              replace(/^\w+-/, '').replace(/-/g, ' ');

          if (hoverlink) {
            hoverlink.remove();
            hoverlink = null;
          }

          hoverlink = document.createElement('a');
          hoverlink.href = '#' + anchor.id;
          hoverlink.className = 'hoverlink';
          hoverlink.title = 'Permalink to this ' + itemType;
          target.appendChild(hoverlink);
        });

        cell.addEventListener('mouseleave', () => {
          if (hoverlink) {
            hoverlink.remove();
            hoverlink = null;
          }
        });
      }
  });
  </script>

  <!-- Hoverlink styles -->

  <style>
  :root {
      --hoverlink-size: 0.9em;
  }

  .hoverlink {
      text-decoration: none;
  }

  .hoverlink::after {
      position: absolute;
      display: inline-block;
      content: "";
      width: var(--hoverlink-size);
      height: var(--hoverlink-size);
      background-size: var(--hoverlink-size) var(--hoverlink-size);
      background-image: url();
  }
  </style>

  <!-- Table body expansion and contraction script -->

  <script>
  window.addEventListener('DOMContentLoaded', function() {
      var showables = document.getElementsByClassName('showable');
      for (var i = 0; i < showables.length; i++) {
          var showable = showables[i];
          showable.addEventListener('click', function() {
              this.classList.toggle('show');
          });
      }

      showables = document.getElementsByClassName('showable2');
      for (var i = 0; i < showables.length; i++) {
          var showable = showables[i];
          showable.addEventListener('click', function(event) {
              this.classList.toggle('show2');
              event.stopPropagation();
          });
      }
  });
  </script>

  <!-- Table body expansion and contraction styles -->

  <style>
  .chevron {
      color: var(--link-color);
      cursor: pointer;
  }

  .chevron::before {
      /* Single Right-Pointing Angle Quotation Mark */
      content: "\00203A ";
  }

  .chevron .click::after {
      content: " Click to show/hide...";
  }

  .hide {
      display: none;
  }

  .show tr {
      display: table-row;
  }

  .show td div, .show ul, .show ol {
      display: block;
  }

  .show td span {
      display: inline;
  }

  .show2 *.hide {
      display: none;
  }

  </style>

  <!-- Global styles (that affect the entire document) -->

  <style>
  /* light mode support */
  @media (prefers-color-scheme: light) {
    :root {
      --background-color: white;
      --foreground-color: black;
      --diff-background-color: aliceblue;
      --link-color: blue;
      --parameter-color: white;
      --object-color: #ffff99;
      --command-color: #66cdaa;
      --event-color: #66cdaa;
      --argument-container-color: silver;
      --argument-object-color: pink;
      --argument-parameter-color: #ffe4e1;
      --mountable-object-color: #b3e0ff;
      --mountpoint-object-color: #4db8ff;
      --stripe-direction: 90deg;
      --stripe-stop-point-1: 1%;
      --stripe-stop-point-2: 2%;
      --stripe-color-deprecated: #eeeeee;
      --stripe-color-obsoleted: #dddddd;
      --stripe-color-deleted: #cccccc;
    }
  }

  /* dark mode support */
  @media (prefers-color-scheme: dark) {
    :root {
      --background-color: black;
      --foreground-color: white;
      --diff-background-color: #0f0700;
      --link-color: lightblue;
      --parameter-color: black;
      --object-color: #bbbb44;
      --command-color: #56bd9a;
      --event-color: #56bd9a;
      --argument-container-color: #777777;
      --argument-object-color: #dfa0ab;
      --argument-parameter-color: #bfa4a1;
      --mountable-object-color: #b3e0ff;
      --mountpoint-object-color: #3da8ef;
      --stripe-color-deprecated: #555555;
      --stripe-color-obsoleted: #444444;
      --stripe-color-deleted: #333333;
    }
    .hoverlink {
      filter: invert(1);
    }
  }

  body, table {
      background-color: var(--background-color);
      color: var(--foreground-color);
      font-family: helvetica, arial, sans-serif;
      font-size: 9pt;
  }

  h1 {
      font-size: 14pt;
  }

  h2 {
      font-size: 12pt;
  }

  h3 {
      font-size: 10pt;
  }

  a:link, a:visited {
      color: var(--link-color);
  }

  sup {
      vertical-align: super;
  }

  table {
      text-align: left;
      vertical-align: top;
  }

  td, th {
      padding: 2px;
      text-align: left;
      vertical-align: top;
  }

  /* this is intended for hoverlinks */
  td span {
      padding-right: 2px;
  }

  table.middle-width {
      width: 60%;
  }

  table.full-width {
      width: 100%;
  }

  thead th {
      background-color: #999999;
  }

  table.partial-border {
      border-left-style: hidden;
      border-right-style: hidden;
      border-collapse: collapse;
  }

  table.partial-border th,
  table.partial-border td {
      border-style: solid;
      border-width: 1px;
      border-color: lightgray;
  }

  td > div,
  td > p {
      margin-block-start: 0;
      margin-block-end: 1em;
  }

  td > div:last-of-type,
  td > p:last-of-type {
      margin-block-end: 0;
  }

  .centered {
      text-align: center;
  }

  .inserted {
      color: blue;
  }

  .removed {
      color: red;
      text-decoration: line-through;
  }

  /* XXX this is a bad name */
  .diffs {
      background-color: var(--diff-background-color);
      opacity: 0.8;
  }

  .parameter {
      background-color: var(--parameter-color);
  }

  .deprecated-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--parameter-color),
          var(--parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .object {
      background-color: var(--object-color);
  }

  .deprecated-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--object-color),
          var(--object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .command {
      background-color: var(--command-color);
  }

  .deprecated-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-command {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--command-color),
          var(--command-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .event {
      background-color: var(--event-color);
  }

  .deprecated-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-event {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--event-color),
          var(--event-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-container {
      background-color: var(--argument-container-color);
  }

  .deprecated-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-container {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-container-color),
          var(--argument-container-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-parameter {
      background-color: var(--argument-parameter-color);
  }

  .deprecated-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-parameter {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-parameter-color),
          var(--argument-parameter-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .argument-object {
      background-color: var(--argument-object-color);
  }

  .deprecated-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-argument-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--argument-object-color),
          var(--argument-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .mountable-object {
      background-color: var(--mountable-object-color);
  }

  .deprecated-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-mountable-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountable-object-color),
          var(--mountable-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }

  .mountpoint-object {
      background-color: var(--mountpoint-object-color);
  }

  .deprecated-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-1),
          var(--stripe-color-deprecated) var(--stripe-stop-point-2));
  }

  .obsoleted-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-1),
          var(--stripe-color-obsoleted) var(--stripe-stop-point-2));
  }

  .deleted-mountpoint-object {
      background-image: repeating-linear-gradient(
          var(--stripe-direction),
          var(--mountpoint-object-color),
          var(--mountpoint-object-color) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-1),
          var(--stripe-color-deleted) var(--stripe-stop-point-2));
  }
  </style>

  <!-- Local styles (that affect only data model tables) -->

  <style>
  /* center column 2 (Base Type) */
  .data-type-table th:nth-child(2),
  .data-type-table td:nth-child(2) {
      text-align: center;
  }

  /* center columns 3 (Write), 5 (Object Default), 6 (Version) */
  .data-model-table th:nth-child(3),
  .data-model-table td:nth-child(3),
  .data-model-table th:nth-child(5),
  .data-model-table td:nth-child(5),
  .data-model-table th:nth-child(6),
  .data-model-table td:nth-child(6)
  {
      text-align: center;
  }

  .data-model-table th,
  .data-model-table td {
      hyphenate-character: "";
  }

  /* word wrap/break column 1 (Name) */
  .data-model-table td:first-child {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 27ch;
  }

  /* word wrap/break column 2 (Base Type) */
  .data-model-table td:nth-child(2) {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 12ch;
  }

  /* word wrap/break column 3 (Write) */
  .data-model-table td:nth-child(3) {
      min-width: 1ch;
  }

  /* word wrap/break column 5 (Object Default) */
  .data-model-table td:nth-child(5) {
      word-wrap: break-word;
      word-break: break-all;
      min-width: 12ch;
  }

  /* word wrap/break column 6 (Version) */
  .data-model-table td:nth-child(6) {
      min-width: 6ch;
  }

  /* center column 1 (Abbreviation) */
  .profile-notation-table th:nth-child(1),
  .profile-notation-table td:nth-child(1) {
      text-align: center;
  }

  /* center column 2 (Requirement) */
  .profile-requirements-table th:nth-child(2),
  .profile-requirements-table td:nth-child(2) {
      text-align: center;
  }
  </style>

  <style>
  /* enabled if the --show option was specified (to avoid confusion between
     links and inserted text) */
  a:link, a:visited, a:hover, a:active {
      color: inherit;
  }
  </style>
</head>
<body>
<div id="main">
<table class="full-width">
<colgroup>
<col style="width: 3.0%;"></col>
<col style="width: 22.0%;"></col>
<col style="width: 50.0%;"></col>
<col style="width: 25.0%;"></col></colgroup>
<tbody>
<tr>
<td colspan="2"><a href="https://www.broadband-forum.org"><img width="100%" alt="Broadband Forum" src="https://www.broadband-forum.org/images/logo-broadband-forum.gif"></img></a></td>
<td class="centered" rowspan="1"><p></p>

<h1 id="tr-069-device2-root-data-model-definition-cwmp-changes" class="unnumbered unlisted">TR-069 Device:2 Root Data Model definition [CWMP] (changes)</h1>

<h1 id="tr-181-2-16-0-cwmpxml" class="unnumbered unlisted"><a href="./#tr-181-2-16-0-cwmp.xml">tr-181-2-16-0-cwmp.xml</a></h1></td>
<td rowspan="1"></td></tr>
<tr>
<td></td>
<td><h3 id="data-model-definition" class="unnumbered unlisted">DATA MODEL DEFINITION</h3></td></tr></tbody></table>

<h1 id="license">License</h1>

<p>Copyright (c) 2010-2022, Broadband Forum</p>

<p>The undersigned members have elected to grant the copyright to
their contributed material used in this software:<br/>    Copyright (c) 2017-2019, 2021 ARRIS Enterprises, LLC.</p>

<p>Redistribution and use in source and binary forms, with or
without modification, are permitted provided that the following
conditions are met:</p>

<ol>
<li>Redistributions of source code must retain the above copyright
notice, this list of conditions and the following disclaimer.</li>
<li>Redistributions in binary form must reproduce the above
copyright notice, this list of conditions and the following
disclaimer in the documentation and/or other materials
provided with the distribution.</li>
<li>Neither the name of the copyright holder nor the names of its
contributors may be used to endorse or promote products
derived from this software without specific prior written
permission.</li></ol>

<p>THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND
CONTRIBUTORS &ldquo;AS IS&rdquo; AND ANY EXPRESS OR IMPLIED WARRANTIES,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>

<p>The above license is used as a license under copyright only.
Please reference the Forum IPR Policy for patent licensing terms
<a href="https://www.broadband-forum.org/ipr-policy">https://www.broadband-forum.org/ipr-policy</a>.</p>

<p>Any moral rights which are necessary to exercise under the above
license grant are also deemed granted under this license.</p>

<h1 id="data-types">Data Types</h1>

<p>The Parameters defined in this specification make use of a
limited subset of the default SOAP data types [<a href="#R.SOAP1.1">SOAP1.1</a>]. These data
types and the named data types used by this specification
are described below.</p>

<p>Note: A Parameter that is defined to be one of the named data
types is reported as such at the beginning of the Parameter’s
description via a reference back to the associated data type
definition (e.g. <em>[MACAddress]</em>). However, such parameters
still indicate their SOAP data types.</p>

<table class="full-width partial-border data-type-table">
<thead>
<tr>
<th>Data Type</th>
<th>Base Type</th>
<th>Description</th></tr></thead>
<tbody>
<tr>
<td><span id="T.base64">base64</span></td>
<td>-</td>
<td><p>Base64 encoded binary (no line-length limitation).</p>

<p>A minimum and maximum allowed length can be indicated using the form
<em>base64(Min:Max)</em>, where <em>Min</em> and <em>Max</em> are the minimum and maximum
length in characters before Base64 encoding. If either <em>Min</em> or
<em>Max</em> are missing, this indicates no limit, and if <em>Min</em> is missing
the colon can also be omitted, as in <em>base64(Max)</em>. Multiple
comma-separate ranges can be specified, in which case the length
MUST be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.boolean">boolean</span></td>
<td>-</td>
<td>Boolean, where the allowed values are <em>0</em> or <em>1</em> (or equivalently,
<em>true</em> or <em>false</em>).</td></tr>
<tr>
<td><span id="T.dateTime">dateTime</span></td>
<td>-</td>
<td>The subset of the ISO 8601 date-time format defined by the SOAP
<em>dateTime</em> type [<a href="#R.SOAP1.1">SOAP1.1</a>].</td></tr>
<tr>
<td><span id="T.hexBinary">hexBinary</span></td>
<td>-</td>
<td><p>Hex encoded binary.</p>

<p>A minimum and maximum allowed length can be indicated using the form
<em>hexBinary(Min:Max)</em>, where <em>Min</em> and <em>Max</em> are the minimum and
maximum length in characters before Hex Binary encoding. If either
<em>Min</em> or <em>Max</em> are missing, this indicates no limit, and if <em>Min</em>
is missing the colon can also be omitted, as in <em>hexBinary(Max)</em>.
Multiple comma-separated ranges can be specified, in which case the
length MUST be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.int">int</span></td>
<td>-</td>
<td><p>Integer in the range <em>-2147483648</em> to <em>+2147483647</em>, inclusive.</p>

<p>For some <em>int</em> types, a value range is given using the form
<em>int(Min:Max)</em> or <em>int(Min:Max step Step)</em> where the <em>Min</em> and <em>Max</em>
values are inclusive. If either <em>Min</em> or <em>Max</em> are missing,
this indicates no limit. If <em>Step</em> is missing, this indicates a
step of <em>1</em>. Multiple comma-separated ranges can be specified,
in which case the value will be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.string">string</span></td>
<td>-</td>
<td>For strings, a minimum and maximum allowed length can be indicated
using the form <em>string(Min:Max)</em>, where <em>Min</em> and <em>Max</em> are the minimum
and maximum string length in characters. If either <em>Min</em> or <em>Max</em>
are missing, this indicates no limit, and if <em>Min</em> is missing the
colon can also be omitted, as in <em>string(Max)</em>. Multiple
comma-separated ranges can be specified, in which case the string
length will be in one of the ranges.</td></tr>
<tr>
<td><span id="T.unsignedInt">unsignedInt</span></td>
<td>-</td>
<td><p>Unsigned integer in the range <em>0</em> to <em>4294967295</em>, inclusive.</p>

<p>For some <em>unsignedInt</em> types, a value range is given using the form
<em>unsignedInt(Min:Max)</em> or <em>unsigned(Min:Max step Step)</em>, where the
<em>Min</em> and <em>Max</em> values are inclusive. If either <em>Min</em> or <em>Max</em> are
missing, this indicates no limit. If <em>Step</em> is missing,
this indicates a step of <em>1</em>. Multiple comma-separated ranges can be
specified, in which case the value will be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.unsignedLong">unsignedLong</span></td>
<td>-</td>
<td><p>Unsigned long integer in the range <em>0</em> to <em>18446744073709551615</em>,
inclusive.</p>

<p>For some <em>unsignedLong</em> types, a value range is given using the form
<em>unsignedLong(Min:Max)</em> or <em>unsignedLong(Min:Max step Step)</em>, where
the <em>Min</em> and <em>Max</em> values are inclusive. If either <em>Min</em> or <em>Max</em>
are missing, this indicates no limit. If <em>Step</em> is missing,
this indicates a step of <em>1</em>. Multiple comma-separated ranges can be
specified, in which case the value will be in one of the ranges.</p></td></tr>
<tr>
<td><span id="T.Alias">Alias</span></td>
<td><a href="#T.string">string</a>(:64)</td>
<td><p>A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td></tr>
<tr>
<td><span id="T.DiagnosticsState">DiagnosticsState</span></td>
<td><a href="#T.string">string</a></td>
<td><p>Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D..None"><em>None</em></span> (READONLY)</li>
<li><span id="D..Requested"><em>Requested</em></span></li>
<li><span id="D..Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D..Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D..Error"><em>Error</em></span> (READONLY, OPTIONAL)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D..Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D..Requested"><em>Requested</em></a> and <a href="#D..Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D..Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D..Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D..Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D..None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D..None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D..None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D..Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D..Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D..None"><em>None</em></a>. If the CPE does not support
the <a href="#D..Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p></td></tr>
<tr>
<td><span id="T.IEEE_EUI64">IEEE_EUI64</span></td>
<td><a href="#T.string">string</a>(:23)</td>
<td><p>The IEEE EUI 64-bit identifier as defined in [<a href="#R.IEEE_EUI64">IEEE_EUI64</a>]. The
IEEE defined 64-bit extended unique identifier (EUI-64) is a
concatenation of:</p>

<ul>
<li>The 24-bit (OUI-24) or 36-bit (OUI-36) company_id value assigned by the
IEEE Registration Authority (IEEE-RA), and</li>
<li>The extension identifier (40 bits for OUI-24 or 28 bits for OUI-36)
assigned by the organization with that company_id assignment.</li></ul>

<p>Possible patterns:</p>

<ul>
<li><span id="D.."><em>&lt;Empty&gt;</em></span> (an empty string)</li>
<li><span id="D..0-9A-Fa-f0-9A-Fa-f:70-9A-Fa-f0-9A-Fa-f"><code>([0-9A-Fa-f][0-9A-Fa-f]:){7}([0-9A-Fa-f][0-9A-Fa-f])</code></span></li></ul></td></tr>
<tr>
<td><span id="T.IPAddress">IPAddress</span></td>
<td><a href="#T.string">string</a>(:45)</td>
<td><p>IP address, i.e. IPv4 address (or IPv4 subnet mask) or IPv6 address.</p>

<p>All IPv4 addresses and subnet masks MUST be represented as strings in
IPv4 dotted-decimal notation. Here are some examples of valid IPv4
address textual representations:</p>

<ul>
<li>216.52.29.100</li>
<li>192.168.1.254</li></ul>

<p>All IPv6 addresses MUST be represented using any of the 3 standard
textual representations defined in [<a href="#R.RFC4291">RFC4291</a>] Sections 2.2.1,
2.2.2 and 2.2.3. Both lower-case and upper-case letters can be used, but
use of lower-case letters is RECOMMENDED. Here are some examples of valid
IPv6 address textual representations:</p>

<ul>
<li>1080:0:0:800:ba98:3210:11aa:12dd</li>
<li>1080::800:ba98:3210:11aa:12dd</li>
<li>0:0:0:0:0:0:13.1.68.3</li></ul>

<p>IPv6 addresses MUST NOT include zone identifiers. Zone identifiers are
discussed in [<a href="#R.RFC4007">Section 6/RFC4007</a>].</p>

<p>Unspecified or inapplicable addresses (or IPv4 subnet masks) MUST be
represented as empty strings unless otherwise specified by the parameter
definition.</p></td></tr>
<tr>
<td><span id="T.IPPrefix">IPPrefix</span></td>
<td><a href="#T.string">string</a>(:49)</td>
<td><p>IPv4 or IPv6 routing prefix in Classless Inter-Domain Routing (CIDR)
notation [<a href="#R.RFC4632">RFC4632</a>]. This is specified as an IP address followed
by an appended &ldquo;/n&rdquo; suffix, where <em>n</em> (the prefix size) is an integer
in the range 0-32 (for IPv4) or 0-128 (for IPv6) that indicates the
number of (leftmost) &lsquo;1&rsquo; bits of the routing prefix.</p>

<ul>
<li>IPv4 example: 192.168.1.0/24</li>
<li>IPv6 example: 2001:edff:fe6a:f76::/64</li></ul>

<p>This notation can also represent individual addresses by specifying all
bits.</p>

<ul>
<li>IPv4 example: 192.168.1.1/32</li>
<li>IPv6 example: 2001:edff:fe6a:f76::1/128</li></ul>

<p>If the IP address part is unspecified or inapplicable, it MUST be
an empty string unless otherwise specified by the parameter definition. In this
case the IP prefix will be of the form &ldquo;/n&rdquo;.</p>

<p>If the entire IP prefix is unspecified or inapplicable, it MUST be
an empty string unless otherwise specified by the parameter definition.</p></td></tr>
<tr>
<td><span id="T.IPv4Address">IPv4Address</span></td>
<td><a href="#T.IPAddress">IPAddress</a>(:45)</td>
<td><p>IPv4 address (or subnet mask).</p>

<p>Can be any IPv4 address that is permitted by the <em>IPAddress</em> data type.</p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.."><em>&lt;Empty&gt;</em></span> (an empty string)</li>
<li><span id="D..250-520-40-9010-90-9.3250-520-40-9010-90-9"><code>((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])</code></span></li></ul></td></tr>
<tr>
<td><span id="T.IPv4Prefix">IPv4Prefix</span></td>
<td><a href="#T.IPPrefix">IPPrefix</a>(:49)</td>
<td><p>IPv4 address prefix.</p>

<p>Can be any IPv4 prefix that is permitted by the <em>IPPrefix</em> data type.</p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.."><em>&lt;Empty&gt;</em></span> (an empty string)</li>
<li><span id="D..30-20120-9"><code>/(3[0-2]|[012]?[0-9])</code></span></li>
<li><span id="D..250-520-40-9010-90-9.3250-520-40-9010-90-930-20120-9"><code>((25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9]?[0-9])/(3[0-2]|[012]?[0-9])</code></span></li></ul></td></tr>
<tr>
<td><span id="T.IPv6Prefix">IPv6Prefix</span></td>
<td><a href="#T.IPPrefix">IPPrefix</a>(:49)</td>
<td><p>IPv6 address prefix.</p>

<p>Can be any IPv6 prefix that is permitted by the <em>IPPrefix</em> data type.</p></td></tr>
<tr>
<td><span id="T.MACAddress">MACAddress</span></td>
<td><a href="#T.string">string</a>(:17)</td>
<td><p>All MAC addresses are represented as strings of 12 hexadecimal digits
(digits 0-9, letters A-F or a-f) displayed as six pairs of digits
separated by colons. Unspecified or inapplicable MAC addresses MUST be
represented as empty strings unless otherwise specified by the parameter
definition.</p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.."><em>&lt;Empty&gt;</em></span> (an empty string)</li>
<li><span id="D..0-9A-Fa-f0-9A-Fa-f:50-9A-Fa-f0-9A-Fa-f"><code>([0-9A-Fa-f][0-9A-Fa-f]:){5}([0-9A-Fa-f][0-9A-Fa-f])</code></span></li></ul></td></tr>
<tr>
<td><span id="T.StatsCounter32">StatsCounter32</span></td>
<td><a href="#T.unsignedInt">unsignedInt</a></td>
<td><p>A 32-bit statistics parameter, e.g. a byte counter.</p>

<p>This data type SHOULD NOT be used for statistics parameters whose values
might become greater than the maximum value that can be represented as an
<em>unsignedInt</em> (i.e. 0xffffffff, referred to below as <em>maxval</em>).
<em>StatsCounter64</em> SHOULD be used for such parameters.</p>

<p>The value <em>maxval</em> indicates that no data is available for this
parameter. In the unlikely event that the actual value of the statistic
is <em>maxval</em>, the CPE SHOULD return <em>maxval - 1</em>.</p>

<p>The actual value of the statistic might be greater than <em>maxval</em>. Such
values SHOULD wrap around through zero.</p>

<p>The term <em>packet</em> is to be interpreted as the transmission unit
appropriate to the protocol layer in question, e.g. an IP packet or an
Ethernet frame.</p></td></tr>
<tr>
<td><span id="T.StatsCounter64">StatsCounter64</span></td>
<td><a href="#T.unsignedLong">unsignedLong</a></td>
<td><p>A 64-bit statistics parameter, e.g. a byte counter.</p>

<p>This data type SHOULD be used for all statistics parameters whose values
might become greater than the maximum value that can be represented as an
<em>unsignedInt</em>.</p>

<p>The maximum value that can be represented as an <em>unsignedLong</em> (i.e.
0xffffffffffffffff) indicates that no data is available for this
parameter.</p>

<p>The term <em>packet</em> is to be interpreted as the transmission unit
appropriate to the protocol layer in question, e.g. an IP packet or an
Ethernet frame.</p></td></tr>
<tr>
<td><span id="T.TenthdB">TenthdB</span></td>
<td><a href="#T.int">int</a></td>
<td>This data type represents power levels that are normally expressed in dB.
Units are in tenths of a dB; for example, 5.1 dB will be represented as
51.</td></tr>
<tr>
<td><span id="T.TenthdBmV">TenthdBmV</span></td>
<td><a href="#T.int">int</a></td>
<td>This data type represents power levels that are normally expressed in
dBmV. Units are in tenths of a dBmV; for example, 5.1 dBmV will be
represented as 51.</td></tr>
<tr>
<td><span id="T.URL">URL</span></td>
<td><a href="#T.URI">URI</a>(:2048)</td>
<td>Uniform Resource Locator. See [<a href="#R.RFC3986">RFC3986</a>] (URI),
[<a href="#R.IANA-uri-schemes">IANA-uri-schemes</a>], and individual URI scheme RFCs such as
[<a href="#R.RFC7252">RFC7252</a>] (<em>coap</em>, <em>coaps</em>) and [<a href="#R.RFC7230">RFC7230</a>]
(<em>http</em>, <em>https</em>).</td></tr>
<tr>
<td><span id="T.UUID">UUID</span></td>
<td><a href="#T.string">string</a>(36)</td>
<td><p>Universally Unique Identifier. See [<a href="#R.RFC4122">RFC4122</a>].</p>

<p>Possible patterns:</p>

<ul>
<li><span id="D..A-Fa-f0-98-A-Fa-f0-94-A-Fa-f0-94-A-Fa-f0-94-A-Fa-f0-912"><code>[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}</code></span></li></ul></td></tr>
<tr>
<td><span id="T.ZigBeeNetworkAddress">ZigBeeNetworkAddress</span></td>
<td><a href="#T.string">string</a>(:4)</td>
<td><p>The ZigBee 16-bit network address (NWK) as defined in
[<a href="#R.ZigBee2007">ZigBee2007</a>]. The address is assigned to a device by the network
layer and used by the network layer for routing messages between devices.</p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.."><em>&lt;Empty&gt;</em></span> (an empty string)</li>
<li><span id="D..0-9A-Fa-f4"><code>([0-9A-Fa-f]){4}</code></span></li></ul></td></tr></tbody></table>

<h1 id="references">References</h1>

<table>
<tbody>
<tr>
<td><a href="https://www.3gpp.org/ftp/Specs/html-info/23501.htm">[<span id="R.3GPP-TS.23.501">3GPP-TS.23.501</span>]</a></td>
<td>3GPP TS 23.501, <em>System architecture for the 5G System (5GS); Stage 2</em>, 3GPP SA WG2.</td></tr>
<tr>
<td><a href="https://www.3gpp.org/ftp/Specs/html-info/24008.htm">[<span id="R.3GPP-TS.24.008">3GPP-TS.24.008</span>]</a></td>
<td>3GPP TS 24.008, <em>Mobile radio interface Layer 3 specification; Core network protocols;
Stage 3</em>, 3GPP CT WG1.</td></tr>
<tr>
<td><a href="https://www.3gpp.org/ftp/Specs/html-info/25171.htm">[<span id="R.3GPP-TS.25.171">3GPP-TS.25.171</span>]</a></td>
<td>3GPP TS 25.171, <em>Requirements for support of Assisted Global Positioning System (A-GPS)</em>, 3GPP RAN WG4.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.11-2007.pdf">[<span id="R.802.11-2007">802.11-2007</span>]</a></td>
<td>IEEE Std 802.11-2007, <em>Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications</em>, IEEE, 2007.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.11-2012.pdf">[<span id="R.802.11-2012">802.11-2012</span>]</a></td>
<td>IEEE Std 802.11-2012, <em>Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications</em>, IEEE, March 2012.</td></tr>
<tr>
<td><a href="https://ieeexplore.ieee.org/document/7786995">[<span id="R.802.11-2016">802.11-2016</span>]</a></td>
<td>IEEE Std 802.11-2016, <em>Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications</em>, IEEE, December 2016.</td></tr>
<tr>
<td><a href="https://ieeexplore.ieee.org/document/9363693">[<span id="R.802.11-2020">802.11-2020</span>]</a></td>
<td>IEEE Std 802.11-2020, <em>Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY)
Specifications</em>, IEEE, December 2020.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/standard/802_11ax-2021.html">[<span id="R.802.11ax">802.11ax</span>]</a></td>
<td>IEEE Std 802.11ax, <em>Enhancements for High Efficiency WLAN</em>, IEEE, May 2021.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.11b-1999.pdf">[<span id="R.802.11b-1999">802.11b-1999</span>]</a></td>
<td>IEEE Std 802.11b-1999, <em>Higher Speed Physical Layer Extension in the 2.4 GHz band</em>, IEEE, 1999.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.11g-2003.pdf">[<span id="R.802.11g-2003">802.11g-2003</span>]</a></td>
<td>IEEE Std 802.11g-2003, <em>Further Higher Data Rate Extension in the 2.4 GHz Band</em>, IEEE, 2003.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1ad-2005.pdf">[<span id="R.802.1ad-2005">802.1ad-2005</span>]</a></td>
<td>IEEE Std 802.1ad-2005, <em>Virtual Bridged Local Area Networks Amendment 4: Provider Bridges</em>, IEEE, May 2005.</td></tr>
<tr>
<td><a href="https://ieeexplore.ieee.org/servlet/opac?punumber=6997981">[<span id="R.802.1AX-2014">802.1AX-2014</span>]</a></td>
<td>IEEE Std 802.1AX-2014, <em>IEEE Standard for Local and metropolitan area networks - Link
Aggregation</em>, IEEE, 2014.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1D-2004.pdf">[<span id="R.802.1D-2004">802.1D-2004</span>]</a></td>
<td>IEEE Std 802.1D-2004, <em>Media Access Control (MAC) Bridges</em>, IEEE, 2004.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1Q-2005.pdf">[<span id="R.802.1Q-2005">802.1Q-2005</span>]</a></td>
<td>IEEE Std 802.1Q-2005, <em>Virtual Bridged Local Area Networks</em>, IEEE, 2006.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1Q-2011.pdf">[<span id="R.802.1Q-2011">802.1Q-2011</span>]</a></td>
<td>IEEE Std 802.1Q-2011, <em>MAC Bridges and Virtual Bridge Local Area Networks</em>, IEEE, 2011.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/getieee802/download/802.1X-2004.pdf">[<span id="R.802.1x-2004">802.1x-2004</span>]</a></td>
<td>IEEE Std 802.1x-2004, <em>Standards for Local and Metropolitan Area Networks: Port based Network
Access Control</em>, IEEE, 2004.</td></tr>
<tr>
<td><a href="https://ieeexplore.ieee.org/servlet/opac?punumber=7428774">[<span id="R.802.3-2015">802.3-2015</span>]</a></td>
<td>IEEE Std 802.3-2015, <em>IEEE Standard for Ethernet</em>, IEEE, 2015.</td></tr>
<tr>
<td><a href="https://www.cablelabs.com/specifications">[<span id="R.CM-SP-CM-OSSIv3.1">CM-SP-CM-OSSIv3.1</span>]</a></td>
<td>CM-SP-CM-OSSIv3.1, <em>Cable Modem Operations Support System Interface Specification</em>, CableLabs, October 2020.</td></tr>
<tr>
<td><a href="https://www.cablelabs.com/specifications">[<span id="R.CM-SP-MULPIv3.0">CM-SP-MULPIv3.0</span>]</a></td>
<td>CM-SP-MULPIv3.0, <em>DOCSIS 3.0 MAC and Upper Layer Protocols Interface Specification</em>, CableLabs, December 2017.</td></tr>
<tr>
<td><a href="https://www.cablelabs.com/specifications">[<span id="R.CM-SP-RFIv2.0">CM-SP-RFIv2.0</span>]</a></td>
<td>CM-SP-RFIv2.0, <em>Data-Over-Cable Service Interface Specifications: Radio Frequency Interface Specification</em>, CableLabs, April 2009.</td></tr>
<tr>
<td><a href="https://www.wi-fi.org/discover-wi-fi/specifications">[<span id="R.DataElements">DataElements</span>]</a></td>
<td>Data Elements Specification, <em>Wi-Fi Data Elements Specification</em>, Wi-Fi Alliance, September 2021.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc6763">[<span id="R.DNS-SD">DNS-SD</span>]</a></td>
<td>RFC 6763, <em>DNS-Based Service Discovery</em>, IETF, 2013.</td></tr>
<tr>
<td>[<span id="R.DSLite">DSLite</span>]</td>
<td>RFC 6333, <em>Dual-Stack Lite Broadband Deployments Following IPv4 Exhaustion</em>, IETF, 2011.</td></tr>
<tr>
<td><a href="https://www.wi-fi.org/discover-wi-fi/specifications">[<span id="R.EasyMesh">EasyMesh</span>]</a></td>
<td>EasyMesh Specification, <em>Wi-Fi EasyMesh Specification</em>, Wi-Fi Alliance, December 2021.</td></tr>
<tr>
<td><a href="https://www.etsi.org/deliver/etsi_en/301800_301899/301893/01.08.01_60/en_301893v010801p.pdf">[<span id="R.ETSIBRAN">ETSIBRAN</span>]</a></td>
<td>ETSI EN 301 893, <em>Broadband Radio Access Networks (BRAN); 5 GHz high performance RLAN;
Harmonized EN covering the essential requirements of article 3.2 of the
RTTE Directive</em>, ETSI.</td></tr>
<tr>
<td><a href="https://docbox.etsi.org/M2M/Open/Latest_Drafts/00002ed121v116.pdf">[<span id="R.ETSIM2MFA">ETSIM2MFA</span>]</a></td>
<td>ETSI TS 102 690 v1.1.6, <em>Machine-to-Machine Communications (M2M Functional Architecture)</em>, ETSI, June 2012.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9701-201412-P">[<span id="R.G.9701">G.9701</span>]</a></td>
<td>G.9701, <em>Fast access to subscriber terminals (G.fast)- Physical layer
specification</em>, ITU-T, 2014.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9807.1-201606-I/en">[<span id="R.G.9807.1">G.9807.1</span>]</a></td>
<td>G.9807.1, <em>10-Gigabit-capable symmetric passive optical network (XGS-PON)</em>, ITU-T, June 2016.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.984.3-201401-I/en">[<span id="R.G.984.3">G.984.3</span>]</a></td>
<td>G.984.3, <em>Gigabit-capable passive optical networks (G-PON): Transmission
convergence layer specification</em>, ITU-T, January 2010.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.987.3-201401-I/en">[<span id="R.G.987.3">G.987.3</span>]</a></td>
<td>G.987.3, <em>10-Gigabit-capable passive optical networks (XG-PON): Transmission
convergence (TC) layer specification</em>, ITU-T, January 2014.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.988-201010-P/en">[<span id="R.G.988">G.988</span>]</a></td>
<td>G.988, <em>ONU management and control interface (OMCI) specification</em>, ITU-T, 2010.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.989.3-202105-I/en">[<span id="R.G.989.3">G.989.3</span>]</a></td>
<td>G.989.3, <em>40-Gigabit-capable passive optical networks (NG-PON2): Transmission
convergence layer specification</em>, ITU-T, May 2021.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.993.1">[<span id="R.G.993.1">G.993.1</span>]</a></td>
<td>G.993.1, <em>Very high speed digital subscriber line transceivers</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9954/en">[<span id="R.G.9954">G.9954</span>]</a></td>
<td>G.9954, <em>Phoneline networking transceivers - Enhanced physical, media access,
and link layer specifications (HPNA 3.0 and 3.1)</em>, ITU-T, 2007.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.996.2">[<span id="R.G.996.2">G.996.2</span>]</a></td>
<td>G.996.2, <em>Single-ended line testing for digital subscriber lines (DSL)</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9960-201006-P">[<span id="R.G.9960">G.9960</span>]</a></td>
<td>G.9960, <em>Unified high-speed wire-line based home networking transceivers -
System architecture and physical layer specification</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9961-201006-P">[<span id="R.G.9961">G.9961</span>]</a></td>
<td>G.9961, <em>Unified high-speed wire-line based home networking transceivers - Data
link layer specification</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.9962-201308-P">[<span id="R.G.9964">G.9964</span>]</a></td>
<td>G.9964, <em>Unified high-speed wire-line based home networking transceivers - Power
spectral density specification</em>, ITU-T.</td></tr>
<tr>
<td><a href="https://www.itu.int/rec/T-REC-G.997.2-201505-I">[<span id="R.G.997.2">G.997.2</span>]</a></td>
<td>G.997.2, <em>Physical layer management for FAST transceivers</em>, ITU-T, 2015.</td></tr>
<tr>
<td><a href="https://en.wikipedia.org/wiki/HomePlug">[<span id="R.HPAV1.1">HPAV1.1</span>]</a></td>
<td>HomePlug™ AV Specification, <em>Version 1.1</em>, HomePlug Alliance, 2007.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/html4">[<span id="R.HTML4.01">HTML4.01</span>]</a></td>
<td>HTML 4.01 Specification, W3C.</td></tr>
<tr>
<td><a href="https://www.iana.org/assignments/version-numbers">[<span id="R.IANA-ipversionnumbers">IANA-ipversionnumbers</span>]</a></td>
<td>IANA IP Version Numbers, <em>IP Version Numbers</em>, IANA.</td></tr>
<tr>
<td><a href="https://www.iana.org/assignments/protocol-numbers">[<span id="R.IANA-protocolnumbers">IANA-protocolnumbers</span>]</a></td>
<td>IANA Protocol Numbers, <em>Protocol Numbers</em>, IANA.</td></tr>
<tr>
<td><a href="https://www.iana.org/assignments/uri-schemes">[<span id="R.IANA-uri-schemes">IANA-uri-schemes</span>]</a></td>
<td>IANA Uniform Resource Identifier (URI) Schemes Registry, <em>Uniform Resource Identifier (URI) Schemes</em>, IANA.</td></tr>
<tr>
<td><a href="https://www.iana.org/assignments/ianamau-mib/ianamau-mib">[<span id="R.IANAMauMIB">IANAMauMIB</span>]</a></td>
<td>IANAMauMIB, <em>IANA-MAU-MIB DEFINITIONS</em>, IANA, 2022.</td></tr>
<tr>
<td><a href="https://www.icsalabs.com/sites/default/files/baseline.pdf">[<span id="R.ICSA-Baseline">ICSA-Baseline</span>]</a></td>
<td>ICSA Baseline Modular Firewall Certification Criteria, <em>Baseline module - version 4.1</em>, ICSA Labs, 2008.</td></tr>
<tr>
<td><a href="https://www.IEEE.org">[<span id="R.IEEE1905.1a">IEEE1905.1a</span>]</a></td>
<td>IEEE 1905.1a, <em>IEEE Std 1905.1a, Convergent Digital Home Network for Heterogeneous
Technologies Amendment 1: Support of new MAC/PHYs and enhancements,
IEEE, December 2014.</em>, IEEE, December 2014.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/regauth/oui/tutorials/EUI64.html">[<span id="R.IEEE_EUI64">IEEE_EUI64</span>]</a></td>
<td>Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority, <em>Guidelines for 64-bit Global Identifier (EUI-64) Registration Authority</em>, IEEE, March 1997.</td></tr>
<tr>
<td><a href="https://www.iso.org/iso/country_codes.htm">[<span id="R.ISO3166-1">ISO3166-1</span>]</a></td>
<td>ISO 3166-1, <em>Codes for the representation of names of countries and their
subdivisions - Part 1: Country codes</em>, ISO, 2006.</td></tr>
<tr>
<td><a href="https://wiki.wireshark.org/Development/LibpcapFileFormat">[<span id="R.LIBPCAP">LIBPCAP</span>]</a></td>
<td>Libpcap, <em>Libpcap File Format</em>, Wireshark, 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc8193">[<span id="R.LMAPIFM">LMAPIFM</span>]</a></td>
<td>RFC 8193, <em>Information Model for Large-Scale Measurement Platforms (LMAPs)</em>, IETF, August 2017.</td></tr>
<tr>
<td><a href="https://www.mocalliance.org">[<span id="R.MOCA11-MIB">MOCA11-MIB</span>]</a></td>
<td>MOCA11-MIB, <em>Remote Management of MoCA Interfaces using SNMP MIB</em>, MoCA Alliance, 2009.</td></tr>
<tr>
<td><a href="https://www.mocalliance.org">[<span id="R.MoCAv1.0">MoCAv1.0</span>]</a></td>
<td>MoCA v1.0, <em>MoCA MAC/PHY Specification v1.0</em>, MoCA Alliance, 2009.</td></tr>
<tr>
<td><a href="https://www.mocalliance.org">[<span id="R.MoCAv1.1">MoCAv1.1</span>]</a></td>
<td>MoCA v1.1, <em>MoCA MAC/PHY Specification v1.1 Extensions</em>, MoCA Alliance, 2009.</td></tr>
<tr>
<td><a href="https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html">[<span id="R.MQTT311">MQTT311</span>]</a></td>
<td>MQTT Version 3.1.1, <em>MQTT v3.1.1</em>, OASIS Message Queuing Telemetry Transport (MQTT) TC, October 2014.</td></tr>
<tr>
<td><a href="https://docs.oasis-open.org/mqtt/mqtt/v5.0/mqtt-v5.0.html">[<span id="R.MQTT50">MQTT50</span>]</a></td>
<td>MQTT Version 5.0, <em>MQTT Version 5.0, Candidate OASIS Standard 02.</em>, OASIS Message Queuing Telemetry Transport (MQTT) TC, February 2019.</td></tr>
<tr>
<td><a href="https://standards.ieee.org/faqs/regauth">[<span id="R.OUI">OUI</span>]</a></td>
<td>Organizationally Unique Identifiers (OUIs).</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc1123">[<span id="R.RFC1123">RFC1123</span>]</a></td>
<td>RFC 1123, <em>Requirements for Internet Hosts – Application and Support</em>, IETF, 1989.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc1661">[<span id="R.RFC1661">RFC1661</span>]</a></td>
<td>RFC 1661, <em>The Point-to-Point Protocol (PPP)</em>, IETF, 1994.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2104">[<span id="R.RFC2104">RFC2104</span>]</a></td>
<td>RFC 2104, <em>HMAC: Keyed-Hashing for Message Authentication</em>, IETF, 1997.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2131">[<span id="R.RFC2131">RFC2131</span>]</a></td>
<td>RFC 2131, <em>Dynamic Host Configuration Protocol</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2782">[<span id="R.RFC2782">RFC2782</span>]</a></td>
<td>RFC 2782, <em>A DNS RR for specifying the location of services (DNS SRV)</em>, IETF, 2000.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2819">[<span id="R.RFC2819">RFC2819</span>]</a></td>
<td>RFC 2819, <em>Remote Network Monitoring Management Information Base</em>, IETF, 2000.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2863">[<span id="R.RFC2863">RFC2863</span>]</a></td>
<td>RFC 2863, <em>The Interfaces Group MIB</em>, IETF, 2000.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2865">[<span id="R.RFC2865">RFC2865</span>]</a></td>
<td>RFC 2865, <em>Remote Authentication Dial In User Service (RADIUS)</em>, IETF, 2000.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc2898">[<span id="R.RFC2898">RFC2898</span>]</a></td>
<td>RFC 2898, <em>PKCS #5: Password-Based Cryptography Specification Version 2.0</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3066">[<span id="R.RFC3066">RFC3066</span>]</a></td>
<td>RFC 3066, <em>Tags for the Identification of Languages</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3315">[<span id="R.RFC3315">RFC3315</span>]</a></td>
<td>RFC 3315, <em>Dynamic Host Configuration Protocol for IPv6 (DHCPv6)</em>, IETF, 2003.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3633">[<span id="R.RFC3633">RFC3633</span>]</a></td>
<td>RFC 3633, <em>IPv6 Prefix Options for Dynamic Host Configuration Protocol (DHCP)
version 6</em>, IETF, 2003.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3775">[<span id="R.RFC3775">RFC3775</span>]</a></td>
<td>RFC 3775, <em>Mobility Support in IPv6</em>, IETF, 2004.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc3986">[<span id="R.RFC3986">RFC3986</span>]</a></td>
<td>RFC 3986, <em>Uniform Resource Identifier (URI): Generic Syntax</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4007">[<span id="R.RFC4007">RFC4007</span>]</a></td>
<td>RFC 4007, <em>IPv6 Scoped Address Architecture</em>, IETF.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4122">[<span id="R.RFC4122">RFC4122</span>]</a></td>
<td>RFC 4122, <em>A Universally Unique IDentifier (UUID) URN Namespace</em>, IETF, 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4191">[<span id="R.RFC4191">RFC4191</span>]</a></td>
<td>RFC 4191, <em>Default Router Preferences and More-Specific Routes</em>, IETF, 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4193">[<span id="R.RFC4193">RFC4193</span>]</a></td>
<td>RFC 4193, <em>Unique Local IPv6 Unicast Addresses</em>, IETF, 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4291">[<span id="R.RFC4291">RFC4291</span>]</a></td>
<td>RFC 4291, <em>IP Version 6 Addressing Architecture</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4292">[<span id="R.RFC4292">RFC4292</span>]</a></td>
<td>RFC 4292, <em>IP Forwarding Table MIB</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4293">[<span id="R.RFC4293">RFC4293</span>]</a></td>
<td>RFC 4293, <em>Management Information Base for the Internet Protocol (IP)</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4301">[<span id="R.RFC4301">RFC4301</span>]</a></td>
<td>RFC 4301, <em>Security Architecture for the Internet Protocol</em>, IETF, December 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4302">[<span id="R.RFC4302">RFC4302</span>]</a></td>
<td>RFC 4302, <em>IP Authentication Header</em>, IETF, December 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4303">[<span id="R.RFC4303">RFC4303</span>]</a></td>
<td>RFC 4303, <em>IP Encapsulating Security Payload (ESP)</em>, IETF, December 2005.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4443">[<span id="R.RFC4443">RFC4443</span>]</a></td>
<td>RFC 4443, <em>Internet Control Message Protocol (ICMPv6)
for the Internet Protocol Version 6 (IPv6) Specification</em>, IETF, March 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4632">[<span id="R.RFC4632">RFC4632</span>]</a></td>
<td>RFC 4632, <em>Classless Inter-domain Routing (CIDR): The Internet Address Assignment
and Aggregation Plan</em>, IETF, 2006.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4861">[<span id="R.RFC4861">RFC4861</span>]</a></td>
<td>RFC 4861, <em>Neighbor Discovery for IP version 6 (IPv6)</em>, IETF, 2007.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc4868">[<span id="R.RFC4868">RFC4868</span>]</a></td>
<td>RFC 4868, <em>Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec</em>, IETF, 2007.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5625">[<span id="R.RFC5625">RFC5625</span>]</a></td>
<td>RFC 5625, <em>DNS Proxy Implementation Guidelines</em>, IETF, 2009.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5905">[<span id="R.RFC5905">RFC5905</span>]</a></td>
<td>RFC 5905, <em>Network Time Protocol Version 4: Protocol and Algorithms Specification</em>, IETF, 2010.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5969">[<span id="R.RFC5969">RFC5969</span>]</a></td>
<td>RFC 5969, <em>IPv6 Rapid Deployment on IPv4 Infrastructures (6rd) - Protocol
Specification</em>, IETF, 2010.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc5996">[<span id="R.RFC5996">RFC5996</span>]</a></td>
<td>RFC 5996, <em>Internet Key Exchange Protocol Version 2 (IKEv2)</em>, IETF, September 2010.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc6106">[<span id="R.RFC6106">RFC6106</span>]</a></td>
<td>RFC 6106, <em>IPv6 Router Advertisement Option for DNS Configuration</em>, IETF, 2010.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc6120">[<span id="R.RFC6120">RFC6120</span>]</a></td>
<td>RFC 6120, <em>Extensible Messaging and Presence Protocol (XMPP) : Core</em>, IETF, 2011.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc6455">[<span id="R.RFC6455">RFC6455</span>]</a></td>
<td>RFC 6455, <em>The WebSocket Protocol</em>, IETF, December 2011.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc6887">[<span id="R.RFC6887">RFC6887</span>]</a></td>
<td>RFC 6887, <em>Port Control Protocol (PCP)</em>, IETF, 2013.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7159">[<span id="R.RFC7159">RFC7159</span>]</a></td>
<td>RFC7159, <em>The JavaScript Object Notation (JSON) Data Interchange Format</em>, IETF, March 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7230">[<span id="R.RFC7230">RFC7230</span>]</a></td>
<td>RFC 7230, <em>Hypertext Transfer Protocol (HTTP/1.1): Message Syntax and Routing</em>, IETF, June 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7252">[<span id="R.RFC7252">RFC7252</span>]</a></td>
<td>RFC 7252, <em>The Constrained Application Protocol (CoAP)</em>, IETF, June 2014.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7468">[<span id="R.RFC7468">RFC7468</span>]</a></td>
<td>RFC 7468, <em>Textual Encoding of PKIX, PKCS, and CMS Structures</em>, IETF, April 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7594">[<span id="R.RFC7594">RFC7594</span>]</a></td>
<td>RFC 7594, <em>A Framework for Large-Scale Measurement of Broadband Performance (LMAP)</em>, IETF, September 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7597">[<span id="R.RFC7597">RFC7597</span>]</a></td>
<td>RFC 7597, <em>Mapping of Address and Port with Encapsulation (MAP)</em>, IETF, July 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7598">[<span id="R.RFC7598">RFC7598</span>]</a></td>
<td>RFC 7598, <em>DHCPv6 Options for configuration of Softwire Address and Port Mapped
Clients</em>, IETF, July 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7599">[<span id="R.RFC7599">RFC7599</span>]</a></td>
<td>RFC 7599, <em>Mapping of Address and Port using Translation (MAP-T)</em>, IETF, July 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7616">[<span id="R.RFC7616">RFC7616</span>]</a></td>
<td>RFC 7616, <em>HTTP Digest Access Authentication</em>, IETF, September 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc7693">[<span id="R.RFC7693">RFC7693</span>]</a></td>
<td>RFC 7693, <em>The BLAKE2 Cryptographic Hash and Message Authentication Code (MAC)</em>, IETF, November 2015.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc792">[<span id="R.RFC792">RFC792</span>]</a></td>
<td>RFC 792, <em>Internet Control Message Protocol</em>, IETF, September 1981.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc8141">[<span id="R.RFC8141">RFC8141</span>]</a></td>
<td>RFC 8141, <em>Uniform Resource Names (URNs)</em>, IETF, April 2017.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc8349">[<span id="R.RFC8349">RFC8349</span>]</a></td>
<td>RFC 8349, <em>A YANG Data Model for Routing Management (NMDA Version)</em>, IETF, March 2018.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc862">[<span id="R.RFC862">RFC862</span>]</a></td>
<td>RFC 862, <em>Echo Protocol</em>, IETF, 1983.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/info/rfc8966">[<span id="R.RFC8966">RFC8966</span>]</a></td>
<td>RFC 8966, <em>The Babel Routing Protocol</em>, IETF, January 2021.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/info/rfc8967">[<span id="R.RFC8967">RFC8967</span>]</a></td>
<td>RFC 8967, <em>MAC Authentication for the Babel Routing Protocol</em>, IETF, January 2021.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/info/rfc8968">[<span id="R.RFC8968">RFC8968</span>]</a></td>
<td>RFC 8968, <em>Babel Routing Protocol over Datagram Transport Layer Security</em>, IETF, January 2021.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/info/rfc9046">[<span id="R.RFC9046">RFC9046</span>]</a></td>
<td>RFC 9046, <em>Babel Information Model</em>, IETF, June 2021.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc9110">[<span id="R.RFC9110">RFC9110</span>]</a></td>
<td>RFC 9110, <em>HTTP Semantics</em>, IETF, June 2022.</td></tr>
<tr>
<td><a href="https://www.rfc-editor.org/rfc/rfc9249">[<span id="R.RFC9249">RFC9249</span>]</a></td>
<td>RFC 9249, <em>A YANG Data Model for NTP</em>, IETF, July 2022.</td></tr>
<tr>
<td><a href="https://members.snia.org/document/dl/26423">[<span id="R.SFF-8024">SFF-8024</span>]</a></td>
<td>SFF-8024, <em>SFF Module Management Reference Code Tables</em>, SNIA, May 2021.</td></tr>
<tr>
<td><a href="https://members.snia.org/document/dl/25916">[<span id="R.SFF-8472">SFF-8472</span>]</a></td>
<td>SFF-8472, <em>Management Interface for SFP+</em>, SNIA, March 2021.</td></tr>
<tr>
<td><a href="https://www.w3.org/TR/2000/NOTE-SOAP-20000508">[<span id="R.SOAP1.1">SOAP1.1</span>]</a></td>
<td>Simple Object Access Protocol (SOAP) 1.1, W3C.</td></tr>
<tr>
<td><a href="https://stomp.github.io/stomp-specification-1.2.html">[<span id="R.STOMP1.2">STOMP1.2</span>]</a></td>
<td>STOMP Protocol Specification, <em>STOMP Protocol Specification, Version 1.2</em>.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-069.pdf">[<span id="R.TR-069">TR-069</span>]</a></td>
<td>TR-069 Amendment 6, <em>CPE WAN Management Protocol</em>, Broadband Forum, April 2018.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-106.pdf">[<span id="R.TR-106">TR-106</span>]</a></td>
<td>TR-106 Amendment 8, <em>Data Model Template for CWMP Endpoints and USP Agents</em>, Broadband Forum, May 2018.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-143.pdf">[<span id="R.TR-143">TR-143</span>]</a></td>
<td>TR-143 Amendment 1 Corrigendum 1, <em>Enabling Network Throughput Performance Tests and Statistical
Monitoring</em>, Broadband Forum, August 2015.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-159.pdf">[<span id="R.TR-159">TR-159</span>]</a></td>
<td>TR-159, <em>Management Framework for xDSL Bonding</em>, Broadband Forum, December 2008.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-181_Issue-2.pdf">[<span id="R.TR-181i2">TR-181i2</span>]</a></td>
<td>TR-181 Issue 2 Amendment 15, <em>Device Data Model</em>, Broadband Forum, January 2022.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-232.pdf">[<span id="R.TR-232">TR-232</span>]</a></td>
<td>TR-232, <em>Bulk Data Collection</em>, Broadband Forum, May 2012.</td></tr>
<tr>
<td><a href="https://usp.technology/specification">[<span id="R.TR-369">TR-369</span>]</a></td>
<td>TR-369 Issue 1 Amendment 2, <em>User Services Platform</em>, Broadband Forum, January 2022.</td></tr>
<tr>
<td><a href="https://www.broadband-forum.org/download/TR-471_Issue-4.pdf">[<span id="R.TR-471">TR-471</span>]</a></td>
<td>TR-471, <em>Maximum IP-Layer Capacity Metric, Related Metrics, and Measurements</em>, Broadband Forum, December 2023.</td></tr>
<tr>
<td><a href="https://www.upaplc.org">[<span id="R.UPA-PLC">UPA-PLC</span>]</a></td>
<td>Universal Powerline Association, UPA.</td></tr>
<tr>
<td><a href="http://www.upnp.org/specs/arch/UPnP-arch-DeviceArchitecture-v1.0-20080424.pdf">[<span id="R.UPnP-DAv1">UPnP-DAv1</span>]</a></td>
<td>UPnP Device Architecture, <em>UPnP Device Architecture 1.0</em>, UPnP Forum, April 2008.</td></tr>
<tr>
<td><a href="https://www.usb.org/documents">[<span id="R.USB1.0">USB1.0</span>]</a></td>
<td>USB 1.0, <em>USB 1.0 Specification</em>, USB-IF, January 1996.</td></tr>
<tr>
<td><a href="https://www.usb.org/documents">[<span id="R.USB2.0">USB2.0</span>]</a></td>
<td>USB 2.0, <em>USB 2.0 Specification</em>, USB-IF, April 2000.</td></tr>
<tr>
<td><a href="https://www.usb.org/documents">[<span id="R.USB3.0">USB3.0</span>]</a></td>
<td>USB 3.0, <em>USB 3.0 Specification</em>, USB-IF, November 2008.</td></tr>
<tr>
<td><a href="https://www.wi-fi.org/discover-wi-fi/specifications">[<span id="R.WPA3v3.0">WPA3v3.0</span>]</a></td>
<td>WPA3v3.0, <em>Wi-Fi Protected Access 3 Specification Version 3.0.x</em>, Wi-Fi Alliance.</td></tr>
<tr>
<td><a href="https://www.wi-fi.org/discover-wi-fi/specifications">[<span id="R.WPS2.0">WPS 2.0</span>]</a></td>
<td>WSC 2.0, <em>Wi-Fi Simple Configuration Technical Specification Version 2.0.x</em>, Wi-Fi Alliance.</td></tr>
<tr>
<td><a href="https://www.wi-fi.org/discover-wi-fi/specifications">[<span id="R.WPSv1.0">WPSv1.0</span>]</a></td>
<td>Wi-Fi Protected Setup Specification Version 1.0h, <em>Wi-Fi Alliance</em>, 2006.</td></tr>
<tr>
<td><a href="https://csa-iot.org/all-solutions/zigbee">[<span id="R.ZigBee2007">ZigBee2007</span>]</a></td>
<td>ZigBee 2007 Specification, <em>ZigBee 2007 Specification</em>, ZigBee Alliance, October 2007.</td></tr></tbody></table>

<h1 id="legend">Legend</h1>

<table class="middle-width partial-border">
<tbody>
<tr class="object">
<td>Object definition.</td></tr>
<tr class="parameter">
<td>Parameter definition.</td></tr></tbody></table>

<h1 id="device216-data-model">Device:2.16 Data Model</h1>

<p>For a given implementation of this data model, the Agent MUST
indicate support for the highest version number of any object
or parameter that it supports. For example, even if the Agent
supports only a single parameter that was introduced in version
1.4, then it will indicate support for version 1.4. The version
number associated with each object and parameter is shown in
the <strong>Version</strong> column.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed name = <em>Device:2.15</em> ⇒ <em>Device:2.16</em></li></ul></div>

<table class="full-width partial-border data-model-table">
<thead>
<tr>
<th>Name</th>
<th>Type</th>
<th>Write</th>
<th>Description</th>
<th>Object Default</th>
<th>Version</th></tr></thead>
<tbody>
<tr class="object">
<td><span id="D.Device:2.Device.">Device.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The top-level object for a Device.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Logical."><em>Logical.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.XPON."><em>XPON.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.SSH."><em>SSH.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.UnixDomainSockets."><em>UnixDomainSockets.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.USPServices."><em>USPServices.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.">Device.DeviceInfo.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains general device information.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.DeviceInfo.HostName"><em>HostName</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.DeviceInfo.HostName">HostName</span></td>
<td>string(:255)</td>
<td>W</td>
<td>The hostname of the device [<a href="#R.RFC1123">Section 2 General
issues/RFC1123</a>]. This can be either a Fully Qualified Domain Name (FQDN) or
just the first component of an FQDN. For example, myhgw, myhgw.home,
myhgw.home.arpa, myhgw.isp.net.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.">Device.ManagementServer.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to the CPE’s association with
an ACS.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.ConnReqXMPPConnection">ConnReqXMPPConnection</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of the <strong>{{object: non-existent <span class="inserted">#.XMPP.Connection</span>}}</strong> instance that is used for connection requests to this <a href="#D.Device:2.Device.ManagementServer."><em>ManagementServer</em></a>. If the referenced object is deleted, the parameter value MUST be set to an empty string.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.ConnReqJabberID">ConnReqJabberID</span></td>
<td>string</td>
<td>R</td>
<td><p>The value MUST be the value of the <strong>{{param: non-existent <span class="inserted">#.XMPP.Connection.{i}.JabberID</span>}}</strong> contained in the <strong>{{object: non-existent <span class="inserted">#.XMPP.Connection</span>}}</strong> instance referenced by the <a href="#D.Device:2.Device.ManagementServer.ConnReqXMPPConnection"><em>ConnReqXMPPConnection</em></a> parameter.</p>

<p>If the <a href="#D.Device:2.Device.ManagementServer.ConnReqXMPPConnection"><em>ConnReqXMPPConnection</em></a> parameter is empty or the <strong>{{object: non-existent <span class="inserted">#.XMPP.Connection</span>}}</strong> instance being reference is disabled, then this value will be empty.</p>

<p>If the <strong>{{object: non-existent <span class="inserted">#.XMPP.Connection</span>}}</strong> instance being referenced by the <a href="#D.Device:2.Device.ManagementServer.ConnReqXMPPConnection"><em>ConnReqXMPPConnection</em></a> parameter is lost (<strong>{{param: non-existent <span class="inserted">#.XMPP.Connection.{i}.Status</span>}}</strong> parameter changes from Enabled to some other value), then the value of this parameter MUST remain unchanged until the connection can be reestablished and a new <strong>{{param: non-existent <span class="inserted">#.XMPP.Connection.{i}.JabberID</span>}}</strong> can be established. If the new <strong>{{param: non-existent <span class="inserted">#.XMPP.Connection.{i}.JabberID</span>}}</strong> is identical to the existing value, then the value of this parameter MUST NOT be altered and a VALUE CHANGE event MUST NOT be generated.</p>

<p>Active Notification MUST by default be enabled for this parameter.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.ManageableDevice.">Device.ManagementServer.ManageableDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each entry in this table corresponds to a distinct LAN Device that
supports Device-Gateway Association according to [<a href="#R.TR-069">Annex
F/TR-069</a>] as indicated by the presence of the DHCP option specified in that
Annex.</p>

<p>At most one entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.ManagementServer.ManageableDevice.ManufacturerOUI"><em>ManufacturerOUI</em></a>, <a href="#D.Device:2.Device.ManagementServer.ManageableDevice.SerialNumber"><em>SerialNumber</em></a> and <a href="#D.Device:2.Device.ManagementServer.ManageableDevice.ProductClass"><em>ProductClass</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.ManageableDevice.Host">Host</span></td>
<td>string[](:1024)</td>
<td>R</td>
<td><p>Comma-separated list (maximum number of characters 1024) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. References all the <strong>{{object: non-existent <span class="inserted">##.Hosts.Host</span>}}</strong> table entries, whether active or inactive, that correspond to this physical LAN device. There can be multiple such entries if the device has more than one network interface.</p>

<p>For example: <em>Device.Hosts.Host.1,Device.Hosts.Host.5</em></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.">Device.ManagementServer.EmbeddedDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each entry in this table represents a distinct Proxied Device that
utilizes the Embedded Object Mechanism [<a href="#R.TR-069">Annex J.3/TR-069</a>] for
proxying devices.</p>

<p>At most one entry in this table can exist with the same values for both <a href="#D.Device:2.Device.ManagementServer.EmbeddedDevice.ControllerID"><em>ControllerID</em></a> and <a href="#D.Device:2.Device.ManagementServer.EmbeddedDevice.ProxiedDeviceID"><em>ProxiedDeviceID</em></a>.</p></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.Host">Host</span></td>
<td>string[:32]()</td>
<td>R</td>
<td>Comma-separated list (up to 32 items) (length ) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. References the <strong>{{object: non-existent <span class="inserted">##.Hosts.Host</span>}}</strong> table entry(s), whether active or inactive, that corresponds to this proxied LAN device.</td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.EmbeddedDevice.DiscoveryProtocolReference">DiscoveryProtocolReference</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Each list item MUST be the Path Name of an object discovered using one or more protocols listed in <a href="#D.Device:2.Device.ManagementServer.EmbeddedDevice.DiscoveryProtocol"><em>DiscoveryProtocol</em></a><span class="removed">|ignore</span>, or an empty string.</p>

<p>For objects discovered by the UPnP discovery protocol, the <em>DiscoveryProtocolReference</em> would contain items that are references to instances of the following:</p>

<ul>
<li><strong>{{object: non-existent <span class="inserted">##.UPnP.Discovery.RootDevice</span>}}</strong></li>
<li><strong>{{object: non-existent <span class="inserted">##.UPnP.Discovery.Device</span>}}</strong></li>
<li><strong>{{object: non-existent <span class="inserted">##.UPnP.Discovery.Service</span>}}</strong></li></ul>

<p>For objects discovered by the ETSI-M2M discovery protocol, the <em>DiscoveryProtocolReference</em> would contain items that are references to instances of <a href="#D.Device:2.Device.ETSIM2M.SCL.AreaNwkDeviceInfoInstance."><em>ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance</em></a>.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ManagementServer.VirtualDevice.">Device.ManagementServer.VirtualDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each entry in this table represents a distinct Proxied Device that
utilizes the Virtual CWMP Device Mechanism [<a href="#R.TR-069">Annex J.2/TR-069</a>]
for proxying devices.</p>

<p>At most one entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.ManagementServer.VirtualDevice.ManufacturerOUI"><em>ManufacturerOUI</em></a>, <a href="#D.Device:2.Device.ManagementServer.VirtualDevice.ProductClass"><em>ProductClass</em></a> and <a href="#D.Device:2.Device.ManagementServer.VirtualDevice.SerialNumber"><em>SerialNumber</em></a>.</p></td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.VirtualDevice.Host">Host</span></td>
<td>string[:32]()</td>
<td>R</td>
<td>Comma-separated list (up to 32 items) (length ) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. References all the <strong>{{object: non-existent <span class="inserted">##.Hosts.Host</span>}}</strong> table entries, whether active or inactive, that correspond to this proxied LAN device. There can be multiple such entries if the Proxied Device has more than one network interface.</td>
<td>-</td>
<td>2.3</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ManagementServer.VirtualDevice.DiscoveryProtocolReference">DiscoveryProtocolReference</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Each list item MUST be the Path Name of an object discovered using one or more protocols listed in <a href="#D.Device:2.Device.ManagementServer.VirtualDevice.DiscoveryProtocol"><em>DiscoveryProtocol</em></a><span class="removed">|ignore</span>, or an empty string.</p>

<p>For objects discovered by the UPnP discovery protocol, the <em>DiscoveryProtocolReference</em> would contain items that are references to instances of the following:</p>

<ul>
<li><strong>{{object: non-existent <span class="inserted">##.UPnP.Discovery.RootDevice</span>}}</strong></li>
<li><strong>{{object: non-existent <span class="inserted">##.UPnP.Discovery.Device</span>}}</strong></li>
<li><strong>{{object: non-existent <span class="inserted">##.UPnP.Discovery.Service</span>}}</strong></li></ul>

<p>For objects discovered by the ETSI-M2M discovery protocol, the <em>DiscoveryProtocolReference</em> would contain items that are references to instances of <a href="#D.Device:2.Device.ETSIM2M.SCL.AreaNwkDeviceInfoInstance."><em>ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance</em></a>.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DeviceInfo.FirmwareImage.">Device.DeviceInfo.FirmwareImage.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Top-level object for mapping firmware images.</p>

<p>This is a static table – the number of object instances in this table
is defined by the firmware that is currently running.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DeviceInfo.FirmwareImage.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DeviceInfo.FirmwareImage.Version">Version</span></td>
<td>string(:64)</td>
<td>R</td>
<td><p>A string identifying the version of the firmware image represented by this <a href="#D.Device:2.Device.DeviceInfo.FirmwareImage."><em>FirmwareImage</em></a>. Whenever this firmware image is active (ie, the device has booted this firmware image), the value of the <strong>{{param: non-existent <span class="inserted">#.SoftwareVersion</span>}}</strong> parameter MUST be the same as the value contained in this parameter.</p>

<p>To allow version comparisons, this element SHOULD be in the form of dot-delimited integers, where each successive integer represents a more minor category of variation. For example, 3.0.21 where the components mean: <em>Major.Minor.Build</em>.</p>

<p>The value of <em>Version</em> is an empty string if <a href="#D.Device:2.Device.DeviceInfo.FirmwareImage.Status"><em>Status</em></a> is anything other than <a href="#D.Device:2.Device.DeviceInfo.FirmwareImage.Status.Available"><em>Available</em></a>, <a href="#D.Device:2.Device.DeviceInfo.FirmwareImage.Status.InstallationFailed"><em>InstallationFailed</em></a>, or <a href="#D.Device:2.Device.DeviceInfo.FirmwareImage.Status.ActivationFailed"><em>ActivationFailed</em></a>.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Time.">Device.Time.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object contains <span class="inserted">global </span>parameters relating <span class="inserted">to the NTP time clients and or servers that are active in the device. This object can be used to model SNTP and NTP clients and servers.</span></p>

<p>Both NTP and SNTP have identical packet formats and use the same mathematical operations to calculate client time, clock offset, and roundtrip delay. From the perspective of an NTP or SNTP <span class="removed">time client</span><span class="inserted">server, there is no difference between NTP and SNTP clients, and from the perspective of an NTP or SNTP client, there is no difference between NTP and SNTP servers. SNTP servers are stateless like NTP servers</span> in <span class="removed">the CPE.</span><span class="inserted">non-symmetric modes and can handle numerous clients, but SNTP clients usually operate with only one server at a time, unlike most NTP clients.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Time.ClientNumberOfEntries"><em>ClientNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Time.ServerNumberOfEntries"><em>ServerNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Time.Client."><em>Client.{i}.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.Time.Server."><em>Server.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Time.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables <span class="inserted">all </span>the<span class="removed"> NTP or SNTP</span> time <span class="removed">client.</span><span class="inserted">clients and servers.</span></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Time.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p><span class="removed">Status</span><span class="inserted">Reflects the global time synchronisation status</span> of<span class="removed"> Time support on</span> the CPE. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Time.Status.Disabled"><em>Disabled</em></span> (</li></ul>

<p>Indicates that the CPE’s time client services are disabled.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>Indicates that the CPE’s time client services are disabled.</em> description</li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.Time.Status.Unsynchronized"><em>Unsynchronized</em></span> (</li></ul>

<p>Indicates that the CPE’s absolute time has not yet been set by
any of the configured time clients.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>Indicates that the CPE’s absolute time has not yet been set by
any of the configured time clients.</em> description</li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.Time.Status.Synchronized"><em>Synchronized</em></span> (</li></ul>

<p>Indicates that the CPE has acquired accurate absolute time; its
current time is accurate. One or more time client was able to
configure the time of the CPE.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>Indicates that the CPE has acquired accurate absolute time; its
current time is accurate. One or more time client was able to
configure the time of the CPE.</em> description</li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.Time.Status.Error_FailedToSynchronize"><em>Error_FailedToSynchronize</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.16 due to the introduction of
<a href="#D.Device:2.Device.Time.Client."><em>Client</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li>
<li>Added <em>This enumeration was DEPRECATED in 2.16 due to the introduction of
<a href="#D.Device:2.Device.Time.Client."><em>Client</em></a>.</em> description</li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.Time.Status.Error"><em>Error</em></span> (</li></ul>

<p>MAY be used by the CPE to indicate a locally defined error
condition. None of the configured Time clients were able to
synchronize the time.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>MAY be used by the CPE to indicate a locally defined error
condition. None of the configured Time clients were able to
synchronize the time.</em> description</li></ul></div>

<p>, OPTIONAL)</p>

<div class="removed"><p>The {{enum|Unsynchronized}} value indicates that the CPE’s absolute time has not yet been set.</p>

<p>The {{enum|Synchronized}} value indicates that the CPE has acquired accurate absolute time; its current time is accurate.</p>

<p>The {{enum|Error_FailedToSynchronize}} value indicates that the CPE failed to acquire accurate absolute time; its current time is not accurate.</p>

<p>The {{enum|Error}} value MAY be used by the CPE to indicate a locally defined error condition.</p></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.Time.NTPServer1">NTPServer1</span></td>
<td>string(:64)</td>
<td>W</td>
<td><div class="hide">First NTP timeserver. Either a host name or IP address.</div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> due to the introduction of <a href="#D.Device:2.Device.Time.Client."><em>Client</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.Time.NTPServer2">NTPServer2</span></td>
<td>string(:64)</td>
<td>W</td>
<td><div class="hide">Second NTP timeserver. Either a host name or IP address.</div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> due to the introduction of <a href="#D.Device:2.Device.Time.Client."><em>Client</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.Time.NTPServer3">NTPServer3</span></td>
<td>string(:64)</td>
<td>W</td>
<td><div class="hide">Third NTP timeserver. Either a host name or IP address.</div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> due to the introduction of <a href="#D.Device:2.Device.Time.Client."><em>Client</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.Time.NTPServer4">NTPServer4</span></td>
<td>string(:64)</td>
<td>W</td>
<td><div class="hide">Fourth NTP timeserver. Either a host name or IP address.</div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> due to the introduction of <a href="#D.Device:2.Device.Time.Client."><em>Client</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.Time.NTPServer5">NTPServer5</span></td>
<td>string(:64)</td>
<td>W</td>
<td><div class="hide">Fifth NTP timeserver. Either a host name or IP address.</div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> due to the introduction of <a href="#D.Device:2.Device.Time.Client."><em>Client</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.ClientNumberOfEntries">ClientNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.Time.Client."><em>Client</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.ServerNumberOfEntries">ServerNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.Time.Server."><em>Server</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Time.Client.">Device.Time.Client.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object contains parameters relating to an time client instance.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Time.Client.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Time.Client.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the time client.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>Status of Time support for this client. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Time.Client.Status.Disabled"><em>Disabled</em></span> (Indicates that the time client service is being disabled)</li>
<li><span id="D.Device:2.Device.Time.Client.Status.Unsynchronized"><em>Unsynchronized</em></span> (Indicates that the time client absolute time has not yet been set)</li>
<li><span id="D.Device:2.Device.Time.Client.Status.Synchronized"><em>Synchronized</em></span> (Indicates that the time client has acquired accurate absolute time; its current time is accurate)</li>
<li><span id="D.Device:2.Device.Time.Client.Status.Error"><em>Error</em></span> (MAY be used by the time client to indicate a locally defined error condition, OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Mode">Mode</span></td>
<td>string</td>
<td>W</td>
<td><p>Specifies in which mode the NTP client must be run. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Time.Client.Mode.Unicast"><em>Unicast</em></span> (Support for the NTP client in unicast mode)</li>
<li><span id="D.Device:2.Device.Time.Client.Mode.Broadcast"><em>Broadcast</em></span> (Support for the NTP client in broadcast mode)</li>
<li><span id="D.Device:2.Device.Time.Client.Mode.Multicast"><em>Multicast</em></span> (Support for the NTP client in multicast mode)</li>
<li><span id="D.Device:2.Device.Time.Client.Mode.Manycast"><em>Manycast</em></span> (Support for the NTP client in manycast mode)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Port">Port</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td>Specify the port used to send NTP packets. [<a href="#R.RFC5905">Section
7.2/RFC5905</a>]</td>
<td>123</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Version">Version</span></td>
<td>unsignedInt(1:4)</td>
<td>W</td>
<td>Specifies the supported NTP version. Possible versions are 1-4.</td>
<td>4</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Servers">Servers</span></td>
<td>string[]</td>
<td>W</td>
<td>Comma-separated list of strings. Points to a CSV list of NTP servers or pools. A NTP server can either
be specified as an IP address or a host name. It is expected that the
NTP client resolves multiple addresses which can change over time
when <a href="#D.Device:2.Device.Time.Client.ResolveAddresses"><em>ResolveAddresses</em></a> is enabled.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.ResolveAddresses">ResolveAddresses</span></td>
<td>boolean</td>
<td>W</td>
<td>When this option is enabled the NTP client must resolve the multiple
addresses associated with the host name(s) that are specified in the
<a href="#D.Device:2.Device.Time.Client.Servers"><em>Servers</em></a> field.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.ResolveMaxAddresses">ResolveMaxAddresses</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>When <a href="#D.Device:2.Device.Time.Client.ResolveAddresses"><em>ResolveAddresses</em></a> is enabled, This parameter specifies
the maxium number of IP addresses that the NTP client can resolve. 0
means that all addresses must be resolved.</td>
<td>6</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Peer">Peer</span></td>
<td>boolean</td>
<td>W</td>
<td>Use symmetric active association mode. This device may provide
synchronization to the configured NTP server.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.MinPoll">MinPoll</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>This is the minimum polling interval, in <em>seconds</em> to the power of
two, allowed by any peer of the Internet system, currently set to 6
(64 seconds). [<a href="#R.RFC5905">Section 7.2/RFC5905</a>]</td>
<td>6</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.MaxPoll">MaxPoll</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>This is the maximum polling interval, in <em>seconds</em> to the power of
two, allowed by any peer of the Internet system, currently set to 10
(1024 seconds) [<a href="#R.RFC5905">Section 7.2/RFC5905</a>]</td>
<td>10</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.IBurst">IBurst</span></td>
<td>boolean</td>
<td>W</td>
<td>If the <em>IBurst</em> parameter is enabled, and this is the first packet
sent when the server has been unreachable, the client sends a burst.
This is useful to quickly reduce the synchronization distance below
the distance threshold and synchronize the clock. [<a href="#R.RFC5905">RFC5905</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Burst">Burst</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>If the <em>Burst</em> parameter is enabled and the server is reachable and
a valid source of synchronization is available, the client sends a
burst of BCOUNT (8) packets at each poll interval. The interval
between packets in the burst is two seconds. This is useful to
accurately measure jitter with long poll intervals.
[<a href="#R.RFC5905">RFC5905</a>].</td>
<td>8</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The IP Interface associated with the <em>Client</em> entry.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.BindType">BindType</span></td>
<td>string</td>
<td>W</td>
<td><p>Specifies how the client sockets are bound. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Time.Client.BindType.Address"><em>Address</em></span> (The client sockets are bound to a local IP address)</li>
<li><span id="D.Device:2.Device.Time.Client.BindType.Device"><em>Device</em></span> (The client sockets are bound to a network device. This can be useful when the local address is dynamic)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Time.Client.Authentication.">Device.Time.Client.{i}.Authentication.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to enabling security for the
time client.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Authentication.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables authentication of the time client.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Authentication.Certificate">Certificate</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Security.Certificate."><em>Security.Certificate.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. Points to the certificate that must be used by the NTS-KE client.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Authentication.NTSPort">NTSPort</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td>On this port the NTS Key Establishment protocol is being provided.</td>
<td>4460</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Time.Client.Stats.">Device.Time.Client.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object specifies the statistic parameters for the time client.
[<a href="#R.RFC9249">Chapter 8 NTP Yang Module/RFC9249</a>]</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Stats.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] Specifies the number of packets that have been successfully sent from
the NTP client to the NTP server.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Stats.PacketsSentFailed">PacketsSentFailed</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] Specifies the number of packets that were not successfully sent to
the NTP server.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Stats.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] Specifies the number of packets that have been successfully received
by the NTP client from the NTP server.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Client.Stats.PacketsDropped">PacketsDropped</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] Specifies the number of packets that were received by the NTP client
but were not successfully processed or handled due to errors or other
issues.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Time.Server.">Device.Time.Server.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object contains parameters relating to an time server instance.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Time.Server.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Time.Server.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the time server.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>Status of Time server instance. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Time.Server.Status.Up"><em>Up</em></span> (Indicates that the NTP server instance is enabled and working)</li>
<li><span id="D.Device:2.Device.Time.Server.Status.Down"><em>Down</em></span> (Indicates that the NTP server instance is disabled and thus not working)</li>
<li><span id="D.Device:2.Device.Time.Server.Status.Error"><em>Error</em></span> (MAY be used by the NTP server instance to indicate a locally defined error condition, OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Mode">Mode</span></td>
<td>string</td>
<td>W</td>
<td><p>Specifies in which mode the NTP server must be ran. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Time.Server.Mode.Unicast"><em>Unicast</em></span> (Support for the NTP server in unicast mode)</li>
<li><span id="D.Device:2.Device.Time.Server.Mode.Broadcast"><em>Broadcast</em></span> (Support for the NTP server in broadcast mode)</li>
<li><span id="D.Device:2.Device.Time.Server.Mode.Multicast"><em>Multicast</em></span> (Support for the NTP server in multicast mode)</li>
<li><span id="D.Device:2.Device.Time.Server.Mode.Manycast"><em>Manycast</em></span> (Support for the NTP server in manycast mode)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Version">Version</span></td>
<td>unsignedInt(1:4)</td>
<td>W</td>
<td>Specifies the supported NTP version. Possible versions are 1-4.</td>
<td>4</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Port">Port</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td>Specify the port used to receive NTP packets.
[<a href="#R.RFC5905">Section 7.2/RFC5905</a>]</td>
<td>123</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The IP Interface associated with the <em>Server</em> entry.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.BindType">BindType</span></td>
<td>string</td>
<td>W</td>
<td><p>Specifies how the client sockets must be bounded. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Time.Server.BindType.Address"><em>Address</em></span> (The server sockets are bound to a local IP address)</li>
<li><span id="D.Device:2.Device.Time.Server.BindType.Device"><em>Device</em></span> (The server sockets are bound to a network device. This can be useful when the local address is dynamic)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.MinPoll">MinPoll</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>This is the minimum polling interval, in <em>seconds</em> to the power of
two, allowed by any peer of the Internet system, currently set to 6
(64 seconds). [<a href="#R.RFC5905">Section 7.2/RFC5905</a>]</td>
<td>6</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.MaxPoll">MaxPoll</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>This is the maximum polling interval, in <em>seconds</em> to the power of
two, allowed by any peer of the Internet system, currently set to 10
(1024 seconds) [<a href="#R.RFC5905">Section 7.2/RFC5905</a>]</td>
<td>10</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.TTL">TTL</span></td>
<td>unsignedInt(1:255)</td>
<td>W</td>
<td>Specifies the time to live (TTL) for a broadcast/multicast packet.
[<a href="#R.RFC5905">Section 3.1/RFC5905</a>]</td>
<td>255</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Time.Server.Authentication.">Device.Time.Server.{i}.Authentication.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to enabling security for the
NTP Server.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Authentication.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables authentication of the NTP server.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Authentication.Certificate">Certificate</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Security.Certificate."><em>Security.Certificate.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. Points to the certificate that must be used by the NTS-KE client.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Authentication.NTSNTPServer">NTSNTPServer</span></td>
<td>string[]</td>
<td>W</td>
<td>Comma-separated list of strings. Points to a CSV list of NTP servers. A NTP server can either be
specified as an IP address or a host name. When used the NTS-KE
server will tell the remote NTS-KE client the NTP hostname or address
of the NTP server(s) that should be used. This allows to seperate the
NTP server and NTS-KE server implementation.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Time.Server.Stats.">Device.Time.Server.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object specifies the statistic parameters for the NTP server.
[<a href="#R.RFC9249">Chapter 8 NTP Yang Module/RFC9249</a>]</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Stats.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] Specifies the number of packets that have been successfully sent from
the NTP server to the NTP client.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Stats.PacketsSentFailed">PacketsSentFailed</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] Specifies the number of packets that were not successfully sent to
the NTP client.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Stats.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] Specifies the number of packets that have been successfully received
by the NTP server from a NTP client.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Time.Server.Stats.PacketsDropped">PacketsDropped</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter32">StatsCounter32</a>] Specifies the number of packets that were received by the NTP server
but were not successfully processed or handled due to errors or other
issues.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UserInterface.">Device.UserInterface.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to the user interface of the
CPE.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.UserInterface.HTTPAccessSupportedProtocols"><em>HTTPAccessSupportedProtocols</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.UserInterface.HTTPAccessNumberOfEntries"><em>HTTPAccessNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.UserInterface.HTTPAccess."><em>HTTPAccess.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UserInterface.PasswordUserSelectable">PasswordUserSelectable</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Present only if the CPE provides a password-protected LAN-side user interface and supports LAN-side Auto-Configuration.</p>

<p>Indicates whether or not a password to protect the local user interface of the CPE MAY be selected by the user directly (i.e. <strong>{{param: non-existent <span class="inserted">#.Users.User.{i}.Password</span>}}</strong>), or MUST be equal to the password used by the LAN-side Auto-Configuration protocol (i.e. <strong>{{param: non-existent <span class="inserted">#.LANConfigSecurity.ConfigPassword</span>}}</strong>).</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UserInterface.PasswordReset">PasswordReset</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Present only if the CPE provides a password-protected LAN-side user interface and supports LAN-side Auto-Configuration.</p>

<p>When set to true, resets <strong>{{param: non-existent <span class="inserted">#.LANConfigSecurity.ConfigPassword</span>}}</strong> to its factory value.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UserInterface.AutoUpdateServer">AutoUpdateServer</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The server the CPE can check to see if an update is available for direct download to it.</p>

<p>This MUST NOT be used by the CPE if the <strong>{{param: non-existent <span class="inserted">#.ManagementServer.UpgradesManaged</span>}}</strong> parameter is <em>true</em>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UserInterface.UserUpdateServer">UserUpdateServer</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The server where a user can check via a web browser if an update is available for download to a PC.</p>

<p>This MUST NOT be used by the CPE if the <strong>{{param: non-existent <span class="inserted">#.ManagementServer.UpgradesManaged</span>}}</strong> parameter is <em>true</em>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccessSupportedProtocols">HTTPAccessSupportedProtocols</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates the protocols that are supported by the CPE for the purpose
of remotely accessing the user interface.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.UserInterface.HTTPAccessSupportedProtocols.HTTP"><em>HTTP</em></span> (As defined in [<a href="#R.RFC9110">RFC9110</a>])</li>
<li><span id="D.Device:2.Device.UserInterface.HTTPAccessSupportedProtocols.HTTPS"><em>HTTPS</em></span> (As defined in [<a href="#R.RFC9110">RFC9110</a>])</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccessNumberOfEntries">HTTPAccessNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.UserInterface.HTTPAccess."><em>HTTPAccess</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.">Device.UserInterface.HTTPAccess.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>HTTPAccess is used for modeling the different web interfaces that may
be either localy or remotely available in the device. For example with
Software Modules it is possible to install multiple services that embed
a web interface like a <em>Video service</em> or <em>Photo service</em>.</p>

<p>An instance of the <em>HTTPAccess</em> can model a web interface that is
embedded in the device firmware or installed through a Software Modules
management system.</p>

<p>Access to the web interface MAY require user authentication. To have
access authentication the device MUST support a <a href="#D.Device:2.Device.Users.User."><em>Users.User.</em></a>
object with at least one instance and an assigned relevant role in
<a href="#D.Device:2.Device.Users.User.RoleParticipation"><em>Users.User.{i}.RoleParticipation</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.UserInterface.HTTPAccess.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.UserInterface.HTTPAccess.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables/disables web interface.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Order">Order</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td><p>Position of the <a href="#D.Device:2.Device.UserInterface.HTTPAccess."><em>HTTPAccess</em></a> entry in the order of precedence. A value
of <em>1</em> indicates the first entry considered (highest precedence).
For each incoming connection, the highest ordered entry that matches
the Host: HTTP header and path prefix is applied. All lower <em>Order</em>
entries are ignored. When this value is set, if the value matches
that of an existing entry, the <em>Order</em> value for the existing entry
and all lower <em>Order</em> entries is incremented (lowered in
precedence) to ensure uniqueness of this value.</p>

<p>A deletion causes <em>Order</em> values to be compacted. When a value is
changed, incrementing occurs before compaction.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>Status of web interface.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.UserInterface.HTTPAccess.Status.Up"><em>Up</em></span> (Indicates that the web interface is enabled and working)</li>
<li><span id="D.Device:2.Device.UserInterface.HTTPAccess.Status.Down"><em>Down</em></span> (Indicates that the web interface is disabled and thus not working)</li>
<li><span id="D.Device:2.Device.UserInterface.HTTPAccess.Status.Error"><em>Error</em></span> (MAY be used by the web interface to indicate a locally defined error condition, OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.AccessType">AccessType</span></td>
<td>string</td>
<td>W</td>
<td><p>This parameter describes the possible access types.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.UserInterface.HTTPAccess.AccessType.RemoteAccess"><em>RemoteAccess</em></span> (Indicates that the web interface should be used for remote access. Remote access is defined as any entity not on a local subnet attempting to connect to the device)</li>
<li><span id="D.Device:2.Device.UserInterface.HTTPAccess.AccessType.LocalAccess"><em>LocalAccess</em></span> (Indicates that the web interface should be used for local access)</li></ul></td>
<td>LocalAccess</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.AllowedRoles">AllowedRoles</span></td>
<td>string(:256)[]</td>
<td>W</td>
<td>Comma-separated list of strings (maximum number of characters per item 256). Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Users.Role."><em>Users.Role.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. Only allow users, defined in <a href="#D.Device:2.Device.Users.User."><em>Users.User.</em></a>, to access the
web instance represented by this <a href="#D.Device:2.Device.UserInterface.HTTPAccess."><em>HTTPAccess</em></a> instance that have the
following roles assigned that are defined in <a href="#D.Device:2.Device.Users.Role."><em>Users.Role.</em></a>.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Certificate">Certificate</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Security.Certificate."><em>Security.Certificate.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. Points to the server certificate to be presented by the web
interface. Only required when <a href="#D.Device:2.Device.UserInterface.HTTPAccess.Protocol"><em>Protocol</em></a> is set to <em>HTTPS</em>.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.CACertificate">CACertificate</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Security.Certificate."><em>Security.Certificate.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. Points to the CA certificate that must be used by the web interface.
The <em>CACertificate</em> is used to validate the web client certificate.
<a href="#D.Device:2.Device.UserInterface.HTTPAccess.Protocol"><em>Protocol</em></a> MUST be set to <em>HTTPS</em>.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a table row. The IP or Logical Interface associated with the <a href="#D.Device:2.Device.UserInterface.HTTPAccess."><em>HTTPAccess</em></a> entry.
Example:</p>

<ul>
<li><em>Device.IP.Interface.1</em>.</li>
<li><em>Device.Logical.Interface.1</em>.</li></ul>

<p>If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Port">Port</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td>Listen port number.</td>
<td>443</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Protocol">Protocol</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be a member of the list reported by the <a href="#D.Device:2.Device.UserInterface.HTTPAccessSupportedProtocols"><em>HTTPAccessSupportedProtocols</em></a> parameter. Protocol being used.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.AllowedHosts">AllowedHosts</span></td>
<td>string[]</td>
<td>W</td>
<td><p>Comma-separated list of strings. Specifies which hostnames are permitted to be served by the web
interface.</p>

<p>This could be done by comparing the Host: HTTP header in an incoming
request which will result in the request being routed to this
instance, in the case that the device supports Virtual Hosting.</p>

<p>If this string is empty then this instance acts as a &ldquo;default&rdquo; host,
i.e. it will handle requests for which the Host header does not match
any other instance.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.AllowedPathPrefixes">AllowedPathPrefixes</span></td>
<td>string[]</td>
<td>W</td>
<td>Comma-separated list of strings. Each string must be a partial path which will result in an incoming
request being routed to this instance.</td>
<td>/</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.AutoDisableDuration">AutoDisableDuration</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><p>Indicates in <em>seconds</em> when the web interface will be automatically
disabled. When <em>0</em> is specified, the web interface will not be
automatically disabled.</p>

<p>For example if the web interface is to be active for only 30 minutes,
then this parameter would be set to 1800 <em>seconds</em>.</p></td>
<td>0</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.TimeLeft">TimeLeft</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The number of <em>seconds</em> remaining before the web interface will be
disabled. <em>0</em> means that the web interface is disabled or no
<a href="#D.Device:2.Device.UserInterface.HTTPAccess.AutoDisableDuration"><em>AutoDisableDuration</em></a> was specified.</p>

<p>Example: The <a href="#D.Device:2.Device.UserInterface.HTTPAccess.AutoDisableDuration"><em>AutoDisableDuration</em></a> parameter has been set to
1800 seconds and the web interface was enabled 600 seconds ago. This
means that the <em>TimeLeft</em> will return 1200 seconds, which is the
remaining time before the web interface will be disabled.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.ActivationDate">ActivationDate</span></td>
<td>dateTime</td>
<td>R</td>
<td>Indicates when the web interface was enabled.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.SessionNumberOfEntries">SessionNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.UserInterface.HTTPAccess.Session."><em>Session</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Session.">Device.UserInterface.HTTPAccess.{i}.Session.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Web server session list.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.UserInterface.HTTPAccess.Session.SessionID"><em>SessionID</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.UserInterface.HTTPAccess.Session.SessionID"><em>SessionID</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Session.SessionID">SessionID</span></td>
<td>string(:4096)</td>
<td>R</td>
<td><p>Session identifier.</p>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Session.User">User</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Users.User."><em>Users.User.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The user to whom the session belongs. When the user is unknown
an empty string string SHOULD be used.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Session.IPAddress">IPAddress</span></td>
<td><span title="IPAddress">string(:45)</span></td>
<td>R</td>
<td>[<a href="#T.IPAddress">IPAddress</a>] The IP address of the remote web client, connected to the web
interface.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Session.Port">Port</span></td>
<td>unsignedInt(1:65535)</td>
<td>R</td>
<td>Port number of the remote web client, connected to the web interface.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Session.Protocol">Protocol</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be a member of the list reported by the <a href="#D.Device:2.Device.UserInterface.HTTPAccessSupportedProtocols"><em>HTTPAccessSupportedProtocols</em></a> parameter. Protocol being used.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UserInterface.HTTPAccess.Session.StartDate">StartDate</span></td>
<td>dateTime</td>
<td>R</td>
<td>Indicates when the session was created.</td>
<td>-</td>
<td>2.16</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-object">
<td><span id="D.Device:2.Device.UserInterface.RemoteAccess.">Device.UserInterface.RemoteAccess.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><div class="hide">This object contains parameters relating to remotely accessing the CPE’s user interface.</div>

<div class="hide">Remote access is defined as any entity not of a local subnet attempting to connect to the CPE.</div>

<div class="hide">Remote access requires user authentication. To provide remote access authentication the CPE MUST support a &ldquo;User&rdquo; table with at least one instance that has &ldquo;RemoteAccessCapable&rdquo; set to <em>true</em>.</div>

<div class="inserted"><div class="chevron">This object was DEPRECATED in 2.16<span class="hide"> due to the introduction of <a href="#D.Device:2.Device.UserInterface.HTTPAccess."><em>HTTPAccess</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.">Device.DSL.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object models DSL lines, DSL channels, DSL bonding, and DSL
diagnostics. The specific interface objects defined here are
<a href="#D.Device:2.Device.DSL.Line."><em>Line</em></a>, <a href="#D.Device:2.Device.DSL.Channel."><em>Channel</em></a>, and <a href="#D.Device:2.Device.DSL.BondingGroup."><em>BondingGroup</em></a>. Each
<a href="#D.Device:2.Device.DSL.Line."><em>Line</em></a> models a layer 1 DSL Line interface, and each
<a href="#D.Device:2.Device.DSL.Channel."><em>Channel</em></a> models a layer 1 DSL Channel interface where
multiple channels can run over a DSL line. In the case where bonding is
configured, it is expected that <a href="#D.Device:2.Device.DSL.BondingGroup."><em>BondingGroup</em></a> is stacked
above the <a href="#D.Device:2.Device.DSL.Channel."><em>Channel</em></a> instances within its group.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.Channel.">Device.DSL.Channel.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>DSL Channel table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]).</p>

<p>This table models DSL channel(s) on top of physical DSL lines.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DSL.Channel.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.DSL.Channel.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSL.Channel.LinkEncapsulationUsed">LinkEncapsulationUsed</span></td>
<td>string</td>
<td>R</td>
<td><p>Indicates the link encapsulation standard that the <a href="#D.Device:2.Device.DSL.Channel."><em>Channel</em></a> instance is using for the connection. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Channel.LinkEncapsulationUsed.G.992.3_Annex_K_ATM"><em>G.992.3_Annex_K_ATM</em></span></li>
<li><span id="D.Device:2.Device.DSL.Channel.LinkEncapsulationUsed.G.992.3_Annex_K_PTM"><em>G.992.3_Annex_K_PTM</em></span></li>
<li><span id="D.Device:2.Device.DSL.Channel.LinkEncapsulationUsed.G.993.2_Annex_K_ATM"><em>G.993.2_Annex_K_ATM</em></span></li>
<li><span id="D.Device:2.Device.DSL.Channel.LinkEncapsulationUsed.G.993.2_Annex_K_PTM"><em>G.993.2_Annex_K_PTM</em></span></li></ul>

<p>When ATM encapsulation is identified then an upper-layer <strong>{{object: non-existent <span class="inserted">##.ATM.Link</span>}}</strong> interface MUST be used.</p>

<p>When PTM encapsulation is identified then an upper-layer <strong>{{object: non-existent <span class="inserted">##.PTM.Link</span>}}</strong> interface MUST be used.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.BondingGroup.">Device.DSL.BondingGroup.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>DSL bonding group table (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each instance is a bonding group, and is expected to be stacked above a <strong>{{object: non-existent <span class="inserted">#.Channel</span>}}</strong> instance or a <strong>{{object: non-existent <span class="inserted">##.FAST.Line</span>}}</strong> instance for each bonded channel in the group.</p>

<p>Many of the parameters within this object, including <a href="#D.Device:2.Device.DSL.BondingGroup.LowerLayers"><em>LowerLayers</em></a>, are read-only because bonding is not expected to be configured by a Controller.</p>

<p>The DSL bonding data model is closely aligned with [<a href="#R.TR-159">TR-159</a>]. Corresponds to [<a href="#R.TR-159">TR-159</a>] <em>oBondingGroup</em>.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.Name"><em>Name</em></a>, or with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.GroupID"><em>GroupID</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.BondingGroup.BondedChannel.">Device.DSL.BondingGroup.{i}.BondedChannel.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>DSL bonded channel table. Each table entry represents a bonded channel within the bonding group, and is associated with exactly one <strong>{{object: non-existent <span class="inserted">##.Channel</span>}}</strong> instance or one <strong>{{object: non-existent <span class="inserted">###.FAST.Line</span>}}</strong> instance. There MUST be an instance of <em>BondedChannel</em> for each DSL channel or FAST line that is bonded.</p>

<p>When a <strong>{{object: non-existent <span class="inserted">##.Channel</span>}}</strong> or <strong>{{object: non-existent <span class="inserted">###.FAST.Line</span>}}</strong> is no longer bonded, then the CPE MUST delete the corresponding <em>BondedChannel</em> instance. However, when a bonded <strong>{{object: non-existent <span class="inserted">##.Channel</span>}}</strong> or <strong>{{object: non-existent <span class="inserted">###.FAST.Line</span>}}</strong> becomes disabled, the channel remains bonded and so the corresponding <em>BondedChannel</em> instance MUST NOT be deleted.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.BondedChannel.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.DSL.BondingGroup.BondedChannel.Channel"><em>Channel</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.Diagnostics.">Device.DSL.Diagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The DSL Diagnostics object.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.">Device.DSL.Diagnostics.SELTP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object contains DSL Single-Ended Line Test - Processed (SELT-P)
diagnostics parameters.</p>

<p>This object is for the CPE, aka the Transmission Unit - Remote end
(TU-R).</p>

<p>Reference: ITU-T Recommendation [<a href="#R.G.996.2">G.996.2</a>].</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopTermination">LoopTermination</span></td>
<td>string</td>
<td>R</td>
<td><p>Loop termination indicator. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopTermination.Open"><em>Open</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopTermination.Short"><em>Short</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopTermination.PoweredonDSLAMDPU"><em>Powered on DSLAM/DPU</em></span> (</li></ul>

<p>This enumeration was OBSOLETED in 2.14 because it’s been removed from the ITU-T Recommendation.</p>

<p><span class="inserted">This enumeration was DELETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>obsoleted</em> ⇒ <em>deleted</em></li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopTermination.PoweredonCPE"><em>Powered on CPE</em></span></li>
<li><span id="D.Device:2.Device.DSL.Diagnostics.SELTP.LoopTermination.Unknown"><em>Unknown</em></span></li></ul>

<p>This parameter is defined as LOOP-TERM in ITU-T Recommendation
[<a href="#R.G.996.2">Clause B.1.1.1/G.996.2</a>].</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAST.">Device.FAST.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object models FAST (defined in ITU Recommendation
[<a href="#R.G.9701">G.9701</a>]) lines. Each <a href="#D.Device:2.Device.FAST.Line."><em>Line</em></a> models a layer 1 FAST
Line interface.</td>
<td>-</td>
<td>2.11</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAST.Line.">Device.FAST.Line.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>FAST Line table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]).</p>

<p>This table models physical FAST lines.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.FAST.Line.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.FAST.Line.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.11</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FAST.Line.UPBOKLE">UPBOKLE</span></td>
<td>unsignedInt(0:1280)</td>
<td>R</td>
<td><p>This parameter reports the electrical length<span class="inserted"> expressed in <em>0.1dB</em>,</span> that would have been sent from the FTU-O to the FTU-R if the electrical length was not forced by the DPU-MIB. If the electrical length is not forced by the DPU-MIB, then this object reports the final electrical length, as determined by the FTU-O (see clause 7.3.1.4.2.1/[<a href="#R.G.9701">G.9701</a>]) and conveyed in the O-UPDATE initialization message (see clause 12.3.3.2.4/[<a href="#R.G.9701">G.9701</a>]).</p>

<p>Note: See clause 7.10.4.1 in ITU-T Recommendation [<a href="#R.G.997.2">G.997.2</a>].</p></td>
<td>-</td>
<td>2.11</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Cellular.">Device.Cellular.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object models cellular interfaces and access points.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Cellular.Interface.">Device.Cellular.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Cellular interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each instance of this object models a
cellular modem with a single radio and a single <a href="#D.Device:2.Device.Cellular.Interface.USIM."><em>USIM</em></a>.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Cellular.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Cellular.Interface.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Cellular.Interface.USIM.">Device.Cellular.Interface.{i}.USIM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>USIM (Universal Subscriber Identity Module or SIM card) parameters for
the interface.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Cellular.Interface.USIM.PIN">PIN</span></td>
<td>string(:4)</td>
<td>W</td>
<td><p>Allows the Controller to change the USIM PIN used for SIM card
activation.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:4)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:4)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Cellular.AccessPoint.">Device.Cellular.AccessPoint.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Cellular Access Point table. Each entry is identified by an
<a href="#D.Device:2.Device.Cellular.AccessPoint.APN"><em>APN</em></a> (Access Point Name) that identifies a gateway between the
mobile network and another computer network.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Cellular.AccessPoint.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Cellular.AccessPoint.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.Cellular.AccessPoint.APN"><em>APN</em></a>, or with a given value for <a href="#D.Device:2.Device.Cellular.AccessPoint.Interface"><em>Interface</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Cellular.AccessPoint.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used to authenticate the CPE when making a connection to the
Access Point.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ATM.">Device.ATM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Asynchronous Transfer Mode (ATM) object that contains the
<a href="#D.Device:2.Device.ATM.Link."><em>Link</em></a> interface and <a href="#D.Device:2.Device.ATM.Diagnostics.F5Loopback."><em>Diagnostics.F5Loopback</em></a>
diagnostics.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ATM.Link.">Device.ATM.Link.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>ATM link-layer table (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Models an ATM PVC virtual circuit and the ATM Adaption Layer (AAL). An ATM Link entry is typically stacked on top of either a <strong>{{object: non-existent <span class="inserted">##.DSL.Channel</span>}}</strong> or a <strong>{{object: non-existent <span class="inserted">##.DSL.BondingGroup</span>}}</strong> object.</p>

<p>When an <em>ATM Link</em> interface is used, a lower-layer <strong>{{object: non-existent <span class="inserted">##.DSL.Channel</span>}}</strong> interface MUST be configured with ATM encapsulation (see <strong>{{param: non-existent <span class="inserted">##.DSL.Channel.{i}.LinkEncapsulationUsed</span>}}</strong>).</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.ATM.Link.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.ATM.Link.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.ATM.Link.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.ATM.Link.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DOCSIS.">Device.DOCSIS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>DOCSIS object. This object models the DOCSIS 3.x cable interface
objects.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DOCSIS.DownstreamChannel.">Device.DOCSIS.DownstreamChannel.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIfDownstreamChannelTable/1.3.6.1.2.1.10.127.1.1.1.1]</strong></span> This table describes the attributes of downstream channels (frequency
bands).</p>

<p>See [<a href="#R.CM-SP-RFIv2.0">Tables 6-16, and 6-17/CM-SP-RFIv2.0</a>].</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DOCSIS.DownstreamChannel.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.DownstreamChannel.Frequency">Frequency</span></td>
<td>int(0:1000000000)</td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIfDownChannelFrequency/1.3.6.1.2.1.10.127.1.1.1.1.2]</strong></span> The center of the downstream frequency associated with this channel. This object will return the current tuner <span class="removed">frequency.</span><span class="inserted">frequency, measured in <em>Hz</em>.</span></p>

<p>See [<a href="#R.CM-SP-RFIv2.0">Section 6.3.3/CM-SP-RFIv2.0</a>].</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.DownstreamChannel.Width">Width</span></td>
<td>int(0:16000000)</td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIfDownChannelWidth/1.3.6.1.2.1.10.127.1.1.1.1.3]</strong></span> The bandwidth<span class="inserted"> in <em>Hz</em></span> of this downstream channel. Most implementations are expected to support a channel width of 6 MHz (North America) and/or 8 MHz (Europe).</p>

<p>See [<a href="#R.CM-SP-RFIv2.0">Table 6-17/CM-SP-RFIv2.0</a>].</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DOCSIS.DownstreamChannel.SignalQuality.">Device.DOCSIS.DownstreamChannel.{i}.SignalQuality.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><span class="mark"><strong>[docsIfSignalQualityTable/1.3.6.1.2.1.10.127.1.1.4.1]</strong></span> Describes the PHY signal quality of downstream channels.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.DownstreamChannel.SignalQuality.SignalNoise">SignalNoise</span></td>
<td><span title="TenthdB">int</span></td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIfSigQSignalNoise/1.3.6.1.2.1.10.127.1.1.4.1.5]</strong></span> [<a href="#T.TenthdB">TenthdB</a>] Signal/Noise ratio as perceived for this channel. Describes the Signal/Noise of the downstream <span class="removed">channel.</span><span class="inserted">channel, measured in <em>TenthdB</em>.</span></p>

<p>See [<a href="#R.CM-SP-RFIv2.0">Tables 4-1 and 4-2/CM-SP-RFIv2.0</a>].</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.DownstreamChannel.SignalQuality.Microreflections">Microreflections</span></td>
<td>int(0:255)</td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIfSigQMicroreflections/1.3.6.1.2.1.10.127.1.1.4.1.6]</strong></span> Microreflections, including in-channel response as perceived on this interface, measured in <span class="inserted"><em>-dBc</em> (i.e., </span>dBc below the signal <span class="removed">level.</span><span class="inserted">level).</span> This object is not assumed to return an absolutely accurate value, but it gives a rough indication of microreflections received on this interface. It is up to the implementer to provide information as accurately as possible.</p>

<p>See [<a href="#R.CM-SP-RFIv2.0">Tables 4-1 and 4-2/CM-SP-RFIv2.0</a>].</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DOCSIS.DownstreamChannel.SignalQualityExt.">Device.DOCSIS.DownstreamChannel.{i}.SignalQualityExt.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><span class="mark"><strong>[docsIf3SignalQualityExtTable/1.3.6.1.4.1.4491.2.1.20.1.24.1]</strong></span> Describes the received modulation error ratio of each downstream
channel.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.DownstreamChannel.SignalQualityExt.RxMER">RxMER</span></td>
<td><span title="TenthdB">int</span></td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIf3SignalQualityExtRxMER/1.3.6.1.4.1.4491.2.1.20.1.24.1.1]</strong></span> [<a href="#T.TenthdB">TenthdB</a>] <em>RxMER</em> provides an in-channel received Modulation Error Ratio <span class="removed">(MER).</span><span class="inserted">(MER), measured in <em>TenthdB</em>.</span> <em>RxMER</em> is defined as an estimate, provided by the demodulator, of the ratio: (average constellation energy with equally likely symbols) / (average squared magnitude of error vector)</p>

<p><em>RxMER</em> is measured just prior to FEC (trellis/Reed-Solomon) decoding. <em>RxMER</em> includes the effects of the HFC channel as well as implementation effects of the modulator and demodulator. Error vector estimation may vary among demodulator implementations. In the case of S-CDMA mode, RxMER is measured on the de-spread signal.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DOCSIS.UpstreamChannel.">Device.DOCSIS.UpstreamChannel.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p><span class="mark"><strong>[docsIfUpstreamChannelTable/1.3.6.1.2.1.10.127.1.1.2.1]</strong></span> This table describes the attributes of attached upstream channels.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DOCSIS.UpstreamChannel.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DOCSIS.UpstreamChannel.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.UpstreamChannel.Frequency">Frequency</span></td>
<td>int(0:1000000000)</td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIfUpChannelFrequency/1.3.6.1.2.1.10.127.1.1.2.1.2]</strong></span> The center of the frequency band associated with this upstream interface. This object returns 0 if the frequency is undefined or unknown. Minimum permitted upstream frequency is 5,000,000 <span class="removed">Hz</span><span class="inserted"><em>Hz</em></span> for current technology.</p>

<p>See [<a href="#R.CM-SP-RFIv2.0">Table 4-2/CM-SP-RFIv2.0</a>].</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.UpstreamChannel.Width">Width</span></td>
<td>int(0:64000000)</td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIfUpChannelWidth/1.3.6.1.2.1.10.127.1.1.2.1.3]</strong></span> The bandwidth<span class="inserted"> in <em>Hz</em></span> of this upstream interface. This object returns 0 if the interface width is undefined or unknown. Minimum permitted interface width is currently 200,000 <span class="removed">Hz.</span><span class="inserted"><em>Hz</em>.</span></p>

<p>See [<a href="#R.CM-SP-RFIv2.0">Table 6-5/CM-SP-RFIv2.0</a>].</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.UpstreamChannel.SlotSize">SlotSize</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIfUpChannelSlotSize/1.3.6.1.2.1.10.127.1.1.2.1.5]</strong></span> Applicable to TDMA and ATDMA channel types only. The number of <span class="removed">6.25 microsecond</span><span class="inserted"><em>6.25 microsecond</em></span> ticks in each upstream mini-slot. Returns zero if the value is undefined or unknown or in case of an SCDMA channel.</p>

<p>See [<a href="#R.CM-SP-RFIv2.0">Section 8.1.2.4/CM-SP-RFIv2.0</a>].</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed units value = <em>ticks</em> ⇒ <em>6.25 microsecond</em></li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DOCSIS.UpstreamChannel.Status.">Device.DOCSIS.UpstreamChannel.{i}.Status.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><span class="mark"><strong>[docsIf3CmStatusUsTable/1.3.6.1.4.1.4491.2.1.20.1.2.1]</strong></span> This object provides Upstream channel information previously available
in the SNMP table docsIfCmStatusTable.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.UpstreamChannel.Status.TxPower">TxPower</span></td>
<td><span title="TenthdBmV">int</span></td>
<td>R</td>
<td><span class="mark"><strong>[docsIf3CmStatusUsTxPower/1.3.6.1.4.1.4491.2.1.20.1.2.1.1]</strong></span> [<a href="#T.TenthdBmV">TenthdBmV</a>] This attribute represents the operational CM transmit power for this SC-QAM upstream <span class="removed">channel.</span><span class="inserted">channel, in <em>TenthdBmV</em>.</span> In order for this attribute to provide consistent information under all circumstances, a 3.1 CM will report the average total power for the SC-QAM channel the same as was done for DOCSIS 3.0, regardless of whether it is operating with a 3.1 or a 3.0 CMTS. The value that is reported was referred to as Pr in the DOCSIS 3.0 PHY Spec.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DOCSIS.SpectrumAnalysis.">Device.DOCSIS.SpectrumAnalysis.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added description</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.SpectrumAnalysis.InactivityTimeout">InactivityTimeout</span></td>
<td>int(0:86400)</td>
<td>W</td>
<td><p><span class="mark"><strong>[docsIf3CmSpectrumAnalysisCtrlCmdInactivityTimeout/1.3.6.1.4.1.4491.2.1.20.1.34.2]</strong></span> This attribute controls the length of time<span class="inserted"> (in <em>seconds</em>)</span> after the last spectrum analysis measurement before the feature is automatically disabled. If set to a value of 0, the feature will remain enabled until it is explicitly disabled.</p>

<p>See [<a href="#R.CM-SP-CM-OSSIv3.1">CM-SP-CM-OSSIv3.1</a>], Proactive Network Maintenance Information Model.</p>

<p>The factory default value MUST be <em>300</em>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.SpectrumAnalysis.FirstSegmentCenterFrequency">FirstSegmentCenterFrequency</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><p><span class="mark"><strong>[docsIf3CmSpectrumAnalysisCtrlCmdFirstSegmentCenterFrequency/1.3.6.1.4.1.4491.2.1.20.1.34.3]</strong></span> This attribute controls the center frequency<span class="inserted"> (in <em>Hz</em>)</span> of the first segment for the spectrum analysis measurement. The frequency bins for this segment lie symmetrically to the left and right of this center frequency.</p>

<p>If the number of bins in a segment is odd, the segment center frequency lies directly on the center bin.</p>

<p>If the number of bins in a segment is even, the segment center frequency lies halfway between two bins.</p>

<p>Changing the value of this attribute may result in changes to the <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result."><em>Result</em></a> table. Note that if this parameter is set to an invalid value, the device may return an error, or may adjust the value of the parameter to the closest valid value.</p>

<p>See [<a href="#R.CM-SP-CM-OSSIv3.1">CM-SP-CM-OSSIv3.1</a>], Proactive Network Maintenance Information Model.</p>

<p>The factory default value MUST be <em>93000000</em>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.SpectrumAnalysis.LastSegmentCenterFrequency">LastSegmentCenterFrequency</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><p><span class="mark"><strong>[docsIf3CmSpectrumAnalysisCtrlCmdLastSegmentCenterFrequency/1.3.6.1.4.1.4491.2.1.20.1.34.4]</strong></span> This attribute controls the center frequency<span class="inserted"> (in <em>Hz</em>)</span> of the last segment of the spectrum analysis measurement.</p>

<p>The frequency bins for this segment lie symmetrically to the left and right of this center frequency. If the number of bins in a segment is odd, the segment center frequency lies directly on the center bin. If the number of bins in a segment is even, the segment center frequency lies halfway between two bins.</p>

<p>The value of the <em>LastSegmentCenterFrequency</em> should be equal to the <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.FirstSegmentCenterFrequency"><em>FirstSegmentCenterFrequency</em></a> plus and integer number of segment spans as determined by the <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.SegmentFrequencySpan"><em>SegmentFrequencySpan</em></a>.</p>

<p>Changing the value of this attribute may result in changes to the <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result."><em>Result</em></a> table.</p>

<p>Note that if this parameter is set to an invalid value, the device may return an error, or may adjust the value of the parameter to the closest valid value.</p>

<p>See [<a href="#R.CM-SP-CM-OSSIv3.1">CM-SP-CM-OSSIv3.1</a>], Proactive Network Maintenance Information Model.</p>

<p>The factory default value MUST be <em>993000000</em>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.SpectrumAnalysis.SegmentFrequencySpan">SegmentFrequencySpan</span></td>
<td>unsignedInt(1000000:900000000)</td>
<td>W</td>
<td><p><span class="mark"><strong>[docsIf3CmSpectrumAnalysisCtrlCmdSegmentFrequencySpan/1.3.6.1.4.1.4491.2.1.20.1.34.5]</strong></span> This attribute controls the frequency span<span class="inserted"> (in <em>Hz</em>)</span> of each segment (instance) of the <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result."><em>Result.{i}</em></a> table.</p>

<p>If set to a value of 0, then a default span will be chosen based on the hardware capabilities of the device. Segments are contiguous from the <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.FirstSegmentCenterFrequency"><em>FirstSegmentCenterFrequency</em></a> to the <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.LastSegmentCenterFrequency"><em>LastSegmentCenterFrequency</em></a> and the center frequency for each successive segment is incremented by the <em>SegmentFrequencySpan</em>. The number of segments is (<a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.LastSegmentCenterFrequency"><em>LastSegmentCenterFrequency</em></a> - <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.FirstSegmentCenterFrequency"><em>FirstSegmentCenterFrequency</em></a>)/<em>SegmentFrequencySpan</em> + 1. A segment is equivalent to an instance in the <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result."><em>Result</em></a> table. The chosen <em>SegmentFrequencySpan</em> affects the number of entries in <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result."><em>Result</em></a> table. A more granular <em>SegmentFrequencySpan</em> may adversely affect the amount of time needed to query the table entries in addition to possibly increasing the acquisition time.</p>

<p>Changing the value of this attribute may result in changes to <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result."><em>Result</em></a> table.</p>

<p>Note that if this parameter is set to an invalid value, the device may return an error, or may adjust the value of the parameter to the closest valid value.</p>

<p>See [<a href="#R.CM-SP-CM-OSSIv3.1">CM-SP-CM-OSSIv3.1</a>], Proactive Network Maintenance Information Model.</p>

<p>The factory default value MUST be <em>7500000</em>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.SpectrumAnalysis.EquivalentNoiseBandwidth">EquivalentNoiseBandwidth</span></td>
<td>unsignedInt(50:500)</td>
<td>W</td>
<td><p><span class="mark"><strong>[docsIf3CmSpectrumAnalysisCtrlCmdEquivalentNoiseBandwidth/1.3.6.1.4.1.4491.2.1.20.1.34.7]</strong></span> This parameter allows the user to request an equivalent noise bandwidth<span class="inserted"> (measured in <em>hundredthsbin</em>)</span> for the resolution bandwidth filter used in the spectrum analysis. This corresponds to the spectral width of the window function used when performing a discrete Fourier transform for the analysis.</p>

<p>The window function which corresponds to a value written to this parameter may be obtained by reading the value of <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.WindowFunction"><em>WindowFunction</em></a>.</p>

<p>If an unsupported value is requested, the device may return an error, or choose the closest valid value to the one which is requested. If the closest value is chosen, then a subsequent read of this parameter will return the actual value which is in use.</p>

<p>See [<a href="#R.CM-SP-CM-OSSIv3.1">CM-SP-CM-OSSIv3.1</a>], Proactive Network Maintenance Information Model.</p>

<p>The factory default value MUST be <em>150</em>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result.">Device.DOCSIS.SpectrumAnalysis.Result.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p><span class="mark"><strong>[docsIf3CmSpectrumAnalysisMeasTable/1.3.6.1.4.1.4491.2.1.20.1.35.1]</strong></span> This table provides a list of spectral analysis
measurements as performed across a range of center frequencies. The
table is capable of representing a full scan of the spectrum.</p>

<p>Each <em>Result</em> instance represents the spectral
analysis around a single center frequency point in the spectrum.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result.Frequency"><em>Frequency</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result.Frequency">Frequency</span></td>
<td>int(-2147483648:2147483647)</td>
<td>R</td>
<td><span class="mark"><strong>[docsIf3CmSpectrumAnalysisMeasFrequency/1.3.6.1.4.1.4491.2.1.20.1.35.1.1]</strong></span> The center frequency<span class="inserted"> (in <em>Hz</em>)</span> of the spectral analysis span which is represented by this instance.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PTM.">Device.PTM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Packet Transfer Mode ([<a href="#R.G.993.1">Annex H/G.993.1</a>]). This object contains
the <a href="#D.Device:2.Device.PTM.Link."><em>Link</em></a> interface.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PTM.Link.">Device.PTM.Link.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>PTM link-layer table (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Models a layer 2 variable-sized packet interface. A PTM Link entry is typically stacked on top of either a <strong>{{object: non-existent <span class="inserted">##.FAST.Line</span>}}</strong>, <strong>{{object: non-existent <span class="inserted">##.DSL.Channel</span>}}</strong>, or a <strong>{{object: non-existent <span class="inserted">##.DSL.BondingGroup</span>}}</strong> object.</p>

<p>When a <em>PTM Link</em> interface is used, a lower-layer <strong>{{object: non-existent <span class="inserted">##.DSL.Channel</span>}}</strong> interface MUST be configured with PTM encapsulation (see <strong>{{param: non-existent <span class="inserted">##.DSL.Channel.{i}.LinkEncapsulationUsed</span>}}</strong>).</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PTM.Link.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.PTM.Link.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.PTM.Link.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.PTM.Link.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PTM.Link.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the interface.</p>

<p>Note: This is not necessarily the same as the Ethernet header source or destination MAC address, which is associated with the IP interface and is modeled via the <strong>{{param: non-existent <span class="inserted">##.Ethernet.Link.{i}.MACAddress</span>}}</strong> parameter.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ethernet.">Device.Ethernet.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Ethernet object. This object models several Ethernet interface objects,
each representing a different stack layer, including:
<a href="#D.Device:2.Device.Ethernet.Interface."><em>Interface</em></a>, <a href="#D.Device:2.Device.Ethernet.Link."><em>Link</em></a>, and <a href="#D.Device:2.Device.Ethernet.VLANTermination."><em>VLANTermination</em></a>.
<a href="#D.Device:2.Device.Ethernet.Interface."><em>Interface</em></a> is media-specific and models a port, the PHY
layer, and the Channel Access Method (CAM) part of the MAC layer.
<a href="#D.Device:2.Device.Ethernet.Link."><em>Link</em></a> is media-independent and models the Logical Link
Control (LLC) layer. An &ldquo;outer&rdquo; <a href="#D.Device:2.Device.Ethernet.VLANTermination."><em>VLANTermination</em></a>, when
present, is expected to be stacked on top of <a href="#D.Device:2.Device.Ethernet.Link."><em>Link</em></a> objects to
receive and send frames with a configured VLANID.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ethernet.Interface.">Device.Ethernet.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Ethernet interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). This table models physical Ethernet
ports, but in terms of the interface stack it only models the PHY and
Connection Access Method of the Ethernet interface MAC. A
<strong>{{object: argument unnecessary when referring to current object}}</strong> is also required to model a full Ethernet
device.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Ethernet.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Ethernet.Interface.Name"><em>Name</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Ethernet.Interface.SupportedLinkModes"><em>SupportedLinkModes</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Ethernet.Interface.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The unique manufacturer-assigned Ethernet hardware address of the interface, also referred to as burned-in MAC address.</p>

<p>Note: This is not necessarily the same as the MAC address used for higher-level protocols, which is modeled via the <strong>{{param: non-existent <span class="inserted">#.Link.{i}.MACAddress</span>}}</strong> parameter. Its main purpose is the identification of a specific Ethernet interface; the information can also can be used to perform Wake on LAN.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Ethernet.Interface.SupportedLinkModes">SupportedLinkModes</span></td>
<td>unsignedInt[]</td>
<td>R</td>
<td><p>Comma-separated list of unsigned integers. Reports the supported link modes. MUST be reported in a compliant way
as defined in [<a href="#R.IANAMauMIB">IANAifMauTypeListBits/IANAMauMIB</a>]. For
example, IANAifMauTypeListBits defines the following link mode types:</p>

<ul>
<li><em>11</em> (10BASE-T full duplex mode)</li>
<li><em>14</em> (100BASE-T4)</li>
<li><em>15</em> (100BASE-TX half duplex mode)</li>
<li><em>16</em> (100BASE-TX full duplex mode)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ethernet.Link.">Device.Ethernet.Link.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Ethernet link layer table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Table entries model the Logical Link
Control (LLC) layer. It is expected that an <em>Ethernet Link</em> interface
can be stacked above any lower-layer interface object capable of
carrying Ethernet frames.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Ethernet.Link.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Ethernet.Link.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.Ethernet.Link.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.Ethernet.Link.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.Ethernet.Link.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Ethernet.Link.PriorityTagging">PriorityTagging</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enables or disables priority tagging on this Ethernet Link.</p>

<p>When <em>true</em>, egress frames leaving this interface will be priority tagged with the frame’s associated priority value, which will either be derived directly from the ingress frame or else set via <strong>{{param: non-existent <span class="inserted">##.QoS.Classification.{i}.EthernetPriorityMark</span>}}</strong> or <strong>{{param: non-existent <span class="inserted">##.QoS.Classification.{i}.InnerEthernetPriorityMark</span>}}</strong>.</p>

<p>When <em>false</em>, egress frames leaving this interface will be untagged.</p>

<p>The parameter does not affect reception of ingress frames.</p></td>
<td>false</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ethernet.RMONStats.">Device.Ethernet.RMONStats.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Ethernet statistics based on the [<a href="#R.RFC2819">RFC2819</a>] <em>RMON-MIB</em> <em>etherStatsTable</em>, with some extensions inspired by [<a href="#R.G.988">Section 9.3.32/G.988</a>].</p>

<p>Each instance is associated with an interface capable of transporting Ethernet-encapsulated packets, and contains a set of unidirectional Ethernet statistics.</p>

<p>The statistics are sampled either on ingress or on egress. This is determined as follows:</p>

<ul>
<li>If the instance is associated with an egress queue (or queues) via the <a href="#D.Device:2.Device.Ethernet.RMONStats.Queue"><em>Queue</em></a> parameter or by setting <a href="#D.Device:2.Device.Ethernet.RMONStats.AllQueues"><em>AllQueues</em></a> to <em>true</em> then data is sampled on egress. In this case <a href="#D.Device:2.Device.Ethernet.RMONStats.Bytes"><em>Bytes</em></a> etc measure the data that has been sent on the interface, possibly filtered by <a href="#D.Device:2.Device.Ethernet.RMONStats.Queue"><em>Queue</em></a> or <a href="#D.Device:2.Device.Ethernet.RMONStats.VLANID"><em>VLANID</em></a>.</li>
<li>Otherwise data is sampled on ingress. In this case <a href="#D.Device:2.Device.Ethernet.RMONStats.Bytes"><em>Bytes</em></a> etc measure the data that has been received on the interface, possibly filtered by <a href="#D.Device:2.Device.Ethernet.RMONStats.VLANID"><em>VLANID</em></a>.</li></ul>

<p>When sampling on egress, the term <em>received</em> means <em>received by the queuing sub-system</em>.</p>

<p>Multiple instances can be associated with a single interface: individual instances can be configured to collect data associated with the entire interface, or with a particular VLAN and/or queue.</p>

<p>The CPE MUST reset each instances’s Stats parameters whenever the instance is disabled and re-enabled. Whether this reset occurs when the instance becomes operationally disabled (<a href="#D.Device:2.Device.Ethernet.RMONStats.Status"><em>Status</em></a> = <a href="#D.Device:2.Device.Ethernet.RMONStats.Status.Disabled"><em>Disabled</em></a>) or administratively enabled (<a href="#D.Device:2.Device.Ethernet.RMONStats.Enable"><em>Enable</em></a> = <em>true</em>) is a local matter to the CPE. This is similar to the behavior of interface statistics, e.g. as specified for <strong>{{object: non-existent <span class="inserted">#.Interface.{i}.Stats</span>}}</strong>. Furthermore, this instance’s Stats parameters MUST be reset whenever the referenced interface’s Stats parameters are reset, or when the referenced queue or VLAN is disabled and re-enabled.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.Ethernet.RMONStats.Interface"><em>Interface</em></a> references an interface that is not capable of transporting Ethernet-encapsulated packets, or if <a href="#D.Device:2.Device.Ethernet.RMONStats.Queue"><em>Queue</em></a> references a queue that is not instantiated on <a href="#D.Device:2.Device.Ethernet.RMONStats.Interface"><em>Interface</em></a>, or if <a href="#D.Device:2.Device.Ethernet.RMONStats.Queue"><em>Queue</em></a> is not a valid reference and <a href="#D.Device:2.Device.Ethernet.RMONStats.AllQueues"><em>AllQueues</em></a> is <em>false</em>, the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.Ethernet.RMONStats.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Ethernet.RMONStats.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Note: The <em>RMONStats</em> table includes unique key parameters that are strong references. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>RMONStats</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST set <a href="#D.Device:2.Device.Ethernet.RMONStats.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Ethernet.RMONStats.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and disable the offending <em>RMONStats</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Ethernet.RMONStats.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Ethernet.RMONStats.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.Ethernet.RMONStats.Interface"><em>Interface</em></a>, <a href="#D.Device:2.Device.Ethernet.RMONStats.VLANID"><em>VLANID</em></a> and <a href="#D.Device:2.Device.Ethernet.RMONStats.Queue"><em>Queue</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ethernet.LAG.">Device.Ethernet.LAG.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Ethernet Link Aggregation Group (LAG) table (a stackable interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Table entries model the Link Aggregation Sub-Layer as defined in [<a href="#R.802.3-2015">802.3-2015</a>] and [<a href="#R.802.1AX-2014">802.1AX-2014</a>]. It is expected that a <em>LAG</em> interface can only be stacked above <strong>{{object: non-existent <span class="inserted">#.Interface</span>}}</strong> interfaces. The CPE can reject creation of additional LAG instances if this would exceed its capabilities.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Ethernet.LAG.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Ethernet.LAG.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.Ethernet.LAG.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.Ethernet.LAG.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.Ethernet.LAG.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USB.">Device.USB.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Universal Serial Bus ([<a href="#R.USB1.0">USB1.0</a>], [<a href="#R.USB2.0">USB2.0</a>],
[<a href="#R.USB3.0">USB3.0</a>]). This object contains the <a href="#D.Device:2.Device.USB.Interface."><em>Interface</em></a>,
<a href="#D.Device:2.Device.USB.Port."><em>Port</em></a>, and <a href="#D.Device:2.Device.USB.USBHosts."><em>USBHosts</em></a> objects.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USB.Interface.">Device.USB.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>USB interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). This table models master and slave
USB physical interfaces that support carrying Ethernet frames, e.g. via
the USB Communication Device Class.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.USB.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.USB.Interface.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USB.Interface.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the interface.</p>

<p>Note: This is not necessarily the same as the Ethernet header source or destination MAC address, which is associated with the IP interface and is modeled via the <strong>{{param: non-existent <span class="inserted">##.Ethernet.Link.{i}.MACAddress</span>}}</strong> parameter.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.HPNA.">Device.HPNA.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>HPNA object that contains the <a href="#D.Device:2.Device.HPNA.Interface."><em>Interface</em></a> and
<a href="#D.Device:2.Device.HPNA.Diagnostics."><em>Diagnostics</em></a> objects. The HPNA (also known as HomePNA)
industry standard [<a href="#R.G.9954">G.9954</a>] defines peer to peer communication
for home networking over existing coax cables and telephone wiring
within the home.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.HPNA.Interface.">Device.HPNA.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>HPNA interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each table entry models the PHY and
MAC levels of an HPNA interface [<a href="#R.G.9954">G.9954</a>].</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.HPNA.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.HPNA.Interface.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.HPNA.Interface.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the interface.</p>

<p>Note: This is not necessarily the same as the Ethernet header source or destination MAC address, which is associated with the IP interface and is modeled via the <strong>{{param: non-existent <span class="inserted">##.Ethernet.Link.{i}.MACAddress</span>}}</strong> parameter.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.HPNA.Interface.QoS.">Device.HPNA.Interface.{i}.QoS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>QoS configuration object.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.HPNA.Interface.QoS.FlowSpec.">Device.HPNA.Interface.{i}.QoS.FlowSpec.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Flow specification table.</p>

<p>The <strong>{{object: non-existent <span class="inserted">####.QoS.Classification</span>}}</strong> table is used to classify ingress traffic, where <strong>{{param: non-existent <span class="inserted">####.QoS.Classification.{i}.TrafficClass</span>}}</strong> is one of the classification result outputs. This <em>TrafficClass</em> value can be used to look up the appropriate <em>FlowSpec</em> entry (i.e. the <em>FlowSpec</em> entry whose <a href="#D.Device:2.Device.HPNA.Interface.QoS.FlowSpec.TrafficClasses"><em>TrafficClasses</em></a> list contains a matching traffic class).</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.HPNA.Interface.QoS.FlowSpec.TrafficClasses"><em>TrafficClasses</em></a> is an empty string then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.HPNA.Interface.QoS.FlowSpec.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.HPNA.Interface.QoS.FlowSpec.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.HPNA.Interface.QoS.FlowSpec.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.HPNA.Interface.QoS.FlowSpec.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MoCA.">Device.MoCA.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>MoCA object that contains the <a href="#D.Device:2.Device.MoCA.Interface."><em>Interface</em></a> table
[<a href="#R.MoCAv1.0">MoCAv1.0</a>] [<a href="#R.MoCAv1.1">MoCAv1.1</a>].</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MoCA.Interface.">Device.MoCA.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>MoCA interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each table entry models the PHY and
MAC levels of a MoCA interface [<a href="#R.MoCAv1.0">MoCAv1.0</a>] [<a href="#R.MoCAv1.1">MoCAv1.1</a>].</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.MoCA.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.MoCA.Interface.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MoCA.Interface.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the interface.</p>

<p>Note: This is not necessarily the same as the Ethernet header source or destination MAC address, which is associated with the IP interface and is modeled via the <strong>{{param: non-existent <span class="inserted">##.Ethernet.Link.{i}.MACAddress</span>}}</strong> parameter.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MoCA.Interface.KeyPassphrase">KeyPassphrase</span></td>
<td>string(12:17)</td>
<td>W</td>
<td><p>MoCA Password. The value consists of numeric characters (0-9).
Possible patterns:</p>

<ul>
<li><span id="D.Device:2.Device.MoCA.Interface.KeyPassphrase.d"><code>\d+</code></span></li></ul>

<p>This parameter is based on <em>mocaIfPassword</em> from
[<a href="#R.MOCA11-MIB">MOCA11-MIB</a>].</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(12:17)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(12:17)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.">Device.Ghn.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>G.hn object that contains an <a href="#D.Device:2.Device.Ghn.Interface."><em>Interface</em></a> table for G.hn
supported CPE. The ITU-T G.hn specifications [<a href="#R.G.9960">G.9960</a>] and
[<a href="#R.G.9961">G.9961</a>] define Physical and MAC Layers for communication
between two or more G.hn nodes in the home network over multiple wired
media such as power line, phone line and coaxial cable.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.Interface.">Device.Ghn.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>G.hn interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each table entry models the PHY
[<a href="#R.G.9960">G.9960</a>] and MAC [<a href="#R.G.9961">G.9961</a>] layers of a G.hn interface.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Ghn.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Ghn.Interface.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Ghn.Interface.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the interface, denoted as node MAC address or REGID in [<a href="#R.G.9961">G.9961</a>].</p>

<p>Note: This is not necessarily the same as the Ethernet header source or destination MAC address, which is associated with the IP interface and is modeled via the <strong>{{param: non-existent <span class="inserted">##.Ethernet.Link.{i}.MACAddress</span>}}</strong> parameter.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Ghn.Interface.PHYThroughputDiagnosticsEnable">PHYThroughputDiagnosticsEnable</span></td>
<td>unsignedInt[]</td>
<td>W</td>
<td>Comma-separated list of DeviceIDs of nodes that need to enable their PHY throughput diagnostics mode. All devices that are enabled will participate in the G.hn network PHY throughput diagnostics process.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>string</em> -&gt; <em>unsignedInt[]</em></li>
<li>Added <em>unsignedInt[]</em> syntax <em>unsignedInt</em></li></ul></div></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Ghn.Interface.PerformanceMonitoringDiagnosticsEnable">PerformanceMonitoringDiagnosticsEnable</span></td>
<td>unsignedInt[]</td>
<td>W</td>
<td>Comma-separated list of DeviceIDs of nodes that need to enable their Performance Monitoring diagnostics mode on this node. All devices that are enabled will participate in the G.hn network Performance Monitoring diagnostics process.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>string</em> -&gt; <em>unsignedInt[]</em></li>
<li>Added <em>unsignedInt[]</em> syntax <em>unsignedInt</em></li></ul></div></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.Diagnostics.">Device.Ghn.Diagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The G.hn Diagnostics object.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.">Device.Ghn.Diagnostics.PerformanceMonitoring.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>G.hn Performance Monitoring diagnostics configuration and results.</p>

<p>When diagnostics are requested, all G.hn nodes for which the
<a href="#D.Device:2.Device.Ghn.Interface.PerformanceMonitoringDiagnosticsEnable"><em>Interface.{i}.PerformanceMonitoringDiagnosticsEnable</em></a>
parameter is set enter PHY diagnostics mode.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.">Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Per-channel G.hn performance monitoring results.</p>

<p>Note: channels are unidirectional.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.">Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Per-channel G.hn performance monitoring results during the current
sample interval. Each table entry contains the results collected from
the channel between a G.hn interface (as indicated by
<a href="#D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.DiagnoseMACAddress"><em>DiagnoseMACAddress</em></a>) and a G.hn interface indicated by
<a href="#D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.DestinationMACAddress"><em>DestinationMACAddress</em></a>)</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.DestinationMACAddress"><em>DestinationMACAddress</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.SNR">SNR</span></td>
<td>unsignedInt[]</td>
<td>R</td>
<td>Comma-separated list of unsigned integers. The result of an SNR test performed over the channel. It is formatted as a comma-separated list of N/M unsigned integers that represents the result of Signal-to-Noise-Ratio measurement<span class="inserted"> (in <em>0.1 dB</em>)</span> averaging in groups of M subcarriers. The number N depends on the bandplan used by the node and corresponds to the OFDM control parameter N of each medium as defined in [<a href="#R.G.9964">G.9964</a>]. The number M corresponds to the parameter <a href="#D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.SNRGroupLength"><em>SNRGroupLength</em></a>.</td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.HomePlug.">Device.HomePlug.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>HomePlug object that contains the <a href="#D.Device:2.Device.HomePlug.Interface."><em>Interface</em></a> table. The
HomePlug industry standard [<a href="#R.HPAV1.1">HPAV1.1</a>] defines peer to peer
communication over powerline medium.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.HomePlug.Interface.">Device.HomePlug.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>HomePlug interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each table entry models the PHY and
MAC levels of a HomePlug interface [<a href="#R.HPAV1.1">HPAV1.1</a>].</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.HomePlug.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.HomePlug.Interface.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.HomePlug.Interface.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the interface.</p>

<p>Note: This is not necessarily the same as the Ethernet header source or destination MAC address, which is associated with the IP interface and is modeled via the <strong>{{param: non-existent <span class="inserted">##.Ethernet.Link.{i}.MACAddress</span>}}</strong> parameter.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.HomePlug.Interface.NetworkPassword">NetworkPassword</span></td>
<td>string(:32)</td>
<td>W</td>
<td><p>The network password of the device. This is a human readable ASCII
string that is hashed per the HomePlug specification to generate the
Network Membership Key (NMK). Note that care needs to be taken when
setting this parameter as it might prohibit communication with other
adapters or equipment connected via the powerline network.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:32)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:32)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPA.">Device.UPA.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Universal Powerline Association [<a href="#R.UPA-PLC">UPA-PLC</a>]. This object
contains the <a href="#D.Device:2.Device.UPA.Interface."><em>Interface</em></a> and <a href="#D.Device:2.Device.UPA.Diagnostics."><em>Diagnostics</em></a> objects.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPA.Interface.">Device.UPA.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>UPA interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). Each table entry models the PHY and
MAC levels of a UPA interface [<a href="#R.UPA-PLC">UPA-PLC</a>].</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.UPA.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.UPA.Interface.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UPA.Interface.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the interface.</p>

<p>Note: This is not necessarily the same as the Ethernet header source or destination MAC address, which is associated with the IP interface and is modeled via the <strong>{{param: non-existent <span class="inserted">##.Ethernet.Link.{i}.MACAddress</span>}}</strong> parameter.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UPA.Interface.EncryptionKey">EncryptionKey</span></td>
<td>string(:36)</td>
<td>W</td>
<td><p>Encryption key for secure PLC communications.</p>

<p>This a human readable string used by the system to generate the
encryption key to encrypt communications in powerline. It takes non
extended ASCII characters (i.e. printable 7-bit ASCII character codes
32-126, which includes SPACE but excludes TAB, LF and CR). For
example: bvjPekZiYUf9kjNKJASkgJ09adfoP01Fjvgd</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:36)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:36)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.">Device.WiFi.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The WiFi object is based on the IEEE 802.11 specifications
([<a href="#R.802.11-2020">802.11-2020</a>]). It defines interface objects
(<a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> and <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a>), and application objects
(<a href="#D.Device:2.Device.WiFi.AccessPoint."><em>AccessPoint</em></a> and <a href="#D.Device:2.Device.WiFi.EndPoint."><em>EndPoint</em></a>).</td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-object">
<td><span id="D.Device:2.Device.WiFi.MultiAP.">Device.WiFi.MultiAP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><div class="hide">This object describes a Wi-Fi network containing 1 or more Access Point
devices.</div>

<div class="hide">This object is related to a Wi-Fi network that contains multiple Access
Points (Multi-AP) and utilizes software logic to optimize that Wi-Fi
network (typically via steering STAs, also known as Associated Devices,
to the best Access Point). This object exposes the view of the Wi-Fi
netwtork from the perspective of the Multi-AP Controller. The Wi-Fi
Alliance EasyMesh solution is one example of managing a Multi-AP
network.</div>

<div class="hide">This object and all sub-objects have been moved to new objects.</div>

<div class="chevron">This object was DEPRECATED in 2.15<span class="hide"> because it has moved to
<a href="#D.Device:2.Device.WiFi.DataElements.Network."><em>WiFi.DataElements.Network</em></a> MultiAP objects</span>.<span class="click"></span></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-parameter showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDeviceNumberOfEntries">APDeviceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><div class="hide">The number of entries in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice."><em>APDevice</em></a> table.</div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because the **{{object: non-existent [APDevice.{i}]{.inserted</span>}**}}.<span class="click"></span> is being deprecated.</div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-object showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.">Device.WiFi.MultiAP.APDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><div class="hide">Each instance of this object represents an individual Access Point
device in the Wi-Fi network.</div>

<div class="chevron">This object was DEPRECATED in 2.15<span class="hide"> because <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.ManufacturerOUI"><em>ManufacturerOUI</em></a> and
<a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.LastContactTime"><em>LastContactTime</em></a> have moved to
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice."><em>DataElements.Network.Device.{i}.MultiAPDevice</em></a>, Backhaul
parameters have moved to
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul."><em>DataElements.Network.Device.{i}.MultiAPDevice.Backhaul</em></a>
and <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.MACAddress"><em>MACAddress</em></a> is duplicated in
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.ID"><em>DataElements.Network.Device.{i}.ID</em></a></span>.<span class="click"></span> All the rest are
deprecated as noted.</div>

<div class="hide"><div class="hide">At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.MACAddress"><em>MACAddress</em></a>.</div></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-parameter showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.RadioNumberOfEntries">RadioNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><div class="hide">The number of entries in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio."><em>Radio</em></a> table.</div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because the **{{object: non-existent [Radio.{i}]{.inserted</span>}**}}.<span class="click"></span> is being deprecated</div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-object showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.">Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><div class="hide">This object represents all of the individual Radios contained within
the identified Access Point device known to the controller.</div>

<div class="chevron">This object was DEPRECATED in 2.15<span class="hide"> because <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.MACAddress"><em>MACAddress</em></a> is duplicated in
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ID"><em>DataElements.Network.Device.{i}.Radio.{i}.ID</em></a> and
<a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is replaced with
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Class"><em>DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Class</em></a>.
<a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.Channel"><em>Channel</em></a> is duplicated in
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Channel"><em>DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Channel</em></a>.
<a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.TransmitPower"><em>TransmitPower</em></a> is duplicated in
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.TxPower"><em>DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.TxPower</em></a></span>.<span class="click"></span>
The remaining parameters deprecated as noted.</div>

<div class="hide"><div class="hide">At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.MACAddress"><em>MACAddress</em></a>.</div></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-parameter showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand">OperatingFrequencyBand</span></td>
<td>string</td>
<td>R</td>
<td><div class="hide"><p>Indicates the frequency band at which the radio is operating.
Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.2.4GHz"><em>2.4GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.5GHz"><em>5GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.6GHz"><em>6GHz</em></span> (Added in 2.16)</li></ul></div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because it is replaced with
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Class"><em>DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Class</em></a></span>.<span class="click"></span></div>

<div class="hide"><div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>6GHz</em> enumeration</li></ul></div></div></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-parameter showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards">OperatingStandards</span></td>
<td>string[]</td>
<td>R</td>
<td><div class="hide"><p>Comma-separated list of strings. List items indicate which IEEE 802.11 standard this <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio."><em>Radio</em></a> instance is configured for. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.a"><em>a</em></span> ([<a href="#R.802.11a-1999">802.11a-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.b"><em>b</em></span> ([<a href="#R.802.11b-1999">802.11b-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.g"><em>g</em></span> ([<a href="#R.802.11g-2003">802.11g-2003</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.n"><em>n</em></span> ([<a href="#R.802.11n-2009">802.11n-2009</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ac"><em>ac</em></span> ([<a href="#R.802.11ac-2013">802.11ac-2013</a>])</li>
<li><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ax"><em>ax</em></span> ([<a href="#R.802.11ax">802.11ax</a>])</li></ul></div>

<div class="hide">If <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ax"><em>ax</em></a> are applicable.</div>

<div class="hide">If <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ac"><em>ac</em></a>, <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ax"><em>ax</em></a> are applicable.

<div class="hide">If <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand.6GHz"><em>6GHz</em></a>, only value <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingStandards.ax"><em>ax</em></a> is allowed.</div></div>

<div class="hide">For example, a value of &ldquo;g,b&rdquo; (or &ldquo;b,g&rdquo; - order is not important) means that the 802.11g standard [<a href="#R.802.11g-2003">802.11g-2003</a>] is used with a backwards-compatible mode for 802.11b [<a href="#R.802.11b-1999">802.11b-1999</a>]. A value of &ldquo;g&rdquo; means that only the 802.11g standard is in use.</div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because this information cannot be obtained by EasyMesh</span>.<span class="click"></span></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-parameter showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.Channel">Channel</span></td>
<td>unsignedInt(1:255)</td>
<td>W</td>
<td><div class="hide">The current radio channel used by the connection.</div>

<div class="hide">To request automatic channel selection, set <strong>{{param: non-existent <span class="inserted">###.Radio.{i}.AutoChannelEnable</span>}}</strong> to <em>true</em>.</div>

<div class="hide">Whenever <strong>{{param: non-existent <span class="inserted">###.Radio.{i}.AutoChannelEnable</span>}}</strong> is <em>true</em>, the value of the <em>Channel</em> parameter MUST be the channel selected by the automatic channel selection procedure.</div>

<div class="hide">For channels in &ldquo;wide mode&rdquo; (where a channel bandwidth strictly greater than 20 MHz is used), this parameter is used for Primary Channel only. The secondary or extension channel information is available through <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.ExtensionChannel"><em>ExtensionChannel</em></a>.</div>

<div class="hide">Note: Valid <em>Channel</em> values depend on the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> value specified and the regulatory domain.</div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because it is replaced with <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Channel"><em>DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Channel</em></a></span>.<span class="click"></span></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-parameter showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.APNumberOfEntries">APNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><div class="hide">The number of entries in the <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP."><em>AP</em></a> table.</div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because the **{{object: non-existent [AP.{i}.]{.inserted</span>}**}}.<span class="click"></span> is being deprecated.</div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-object showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.">Device.WiFi.MultiAP.APDevice.{i}.Radio.{i}.AP.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><div class="hide">A single logical Access Point operating on this radio.</div>

<div class="chevron">This object was DEPRECATED in 2.15<span class="hide"> because it has moved to
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.MultiAPSteering."><em>DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.MultiAPSteering.</em></a>
except <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.SSID"><em>SSID</em></a>and <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.BSSID"><em>BSSID</em></a> which are duplicated in
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.</em></a></span>.<span class="click"></span></div>

<div class="hide"><div class="hide">At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.BSSID"><em>BSSID</em></a>.</div></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="deprecated-parameter showable2 hide show2">
<td><span id="D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.AssociatedDeviceNumberOfEntries">AssociatedDeviceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><div class="hide"><strong>{{numentries: not associated with a table}}</strong></div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because the **{{object: non-existent [AssociatedDevice.{i}.]{.inserted</span>}**}}.<span class="click"></span> is being deprecated.</div></td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.">Device.WiFi.DataElements.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the Wi-Fi Alliance Data Elements as defined in
[<a href="#R.DataElements">DataElements</a>] with extended capabilities in additional
objects whose names begin with MultiAP.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.">Device.WiFi.DataElements.Network.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object describes a Wi-Fi network containing 1 or more Access Point
(AP) devices.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.">Device.WiFi.DataElements.Network.SSID.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object specifies SSIDs for fronthaul use across all agents in this
Wi-Fi Multi-AP network, or on this single-AP. Also specifies the
<a href="#D.Device:2.Device.WiFi.DataElements.Network.SSID.Band"><em>Band</em></a> for each <a href="#D.Device:2.Device.WiFi.DataElements.Network.SSID.SSID"><em>SSID</em></a>.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.SSID.SSID"><em>SSID</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band">Band</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. The band(s) (GHz) for which this <a href="#D.Device:2.Device.WiFi.DataElements.Network.SSID.SSID"><em>SSID</em></a> applies. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.All"><em>All</em></span> (Applies to all bands)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.2.4"><em>2.4</em></span> (2.4 GHz band)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.5"><em>5</em></span> (The entire 5 GHz band)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.6"><em>6</em></span> (The entire 6 GHz band)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.5_UNII_1"><em>5_UNII_1</em></span> (5 GHz UNII-1 band, 5.15 to 5.25 GHz)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.5_UNII_2"><em>5_UNII_2</em></span> (5 GHz UNII-2 band, 5.25 to 5.725 GHz)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.5_UNII_3"><em>5_UNII_3</em></span> (5 GHz UNII-3 band, 5.725 to 5.85 GHz)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.5_UNII_4"><em>5_UNII_4</em></span> (5 GHz UNII-4 band, 5.85 to 5.925 GHz)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.6_UNII_5"><em>6_UNII_5</em></span> (6 GHz UNII-5 band, 5.925 to 6.425 GHz)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.6_UNII_6"><em>6_UNII_6</em></span> (6 GHz UNII-6 band, 6.425 to 6.525 GHz)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.6_UNII_7"><em>6_UNII_7</em></span> (<span class="inserted">6</span> GHz UNII-7 band, 6.525 to 6.875 GHz)</li>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.SSID.Band.6_UNII_8"><em>6_UNII_8</em></span> (<span class="inserted">6</span> GHz UNII-8 band, 6.875 to 7.125 GHz)</li></ul></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.">Device.WiFi.DataElements.Network.Device.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each instance of this object represents an individual Access Point
device in the Wi-Fi network.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.ID"><em>ID</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Manufacturer">Manufacturer</span></td>
<td>string</td>
<td>R</td>
<td><p>Identifier of the manufacturer of the device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device</em></a> is the same as <a href="#D.Device:2.Device."><em>Device.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.DeviceInfo.Manufacturer"><em>Device.DeviceInfo.Manufacturer</em></a>.</span></p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.SerialNumber">SerialNumber</span></td>
<td>string</td>
<td>R</td>
<td><p>Identifier of the particular Access Point device that is unique for the indicated model and manufacturer.</p>

<p>This value MUST remain fixed over the lifetime of the device, including across firmware updates.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device</em></a> is the same as <a href="#D.Device:2.Device."><em>Device.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.DeviceInfo.SerialNumber"><em>Device.DeviceInfo.SerialNumber</em></a>.</span></p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.ManufacturerModel">ManufacturerModel</span></td>
<td>string</td>
<td>R</td>
<td><p>Identifier of the manufacturer model to help the user more easily identify a particular piece of equipment.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device</em></a> is the same as <a href="#D.Device:2.Device."><em>Device.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.DeviceInfo.ModelName"><em>Device.DeviceInfo.ModelName</em></a>.</span></p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.SoftwareVersion">SoftwareVersion</span></td>
<td>string</td>
<td>R</td>
<td><p>Identifier of the software version currently installed in the Access Point device (i.e. version of the overall firmware).</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device</em></a> is the same as <a href="#D.Device:2.Device."><em>Device.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.DeviceInfo.SoftwareVersion"><em>Device.DeviceInfo.SoftwareVersion</em></a>.</span></p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.ExecutionEnv">ExecutionEnv</span></td>
<td>string</td>
<td>R</td>
<td><p>Identifier of the execution environment (operating system) in the device. This parameter can be an entry in the table <strong>{{object: non-existent <span class="inserted">####.SoftwareModules.ExecEnv</span>.}}</strong></p>

<p>If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device</em></a> is the same as <a href="#D.Device:2.Device."><em>Device.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device</em></a>Device.SoftwareModules.ExecEnv.{i}..</p></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.APMetricsWiFi6">APMetricsWiFi6</span></td>
<td>boolean</td>
<td>R</td>
<td><div class="hide">Associated Wi-Fi6 STA Status Inclusion Policy.</div>

<div class="hide"><blockquote><em>true</em>: Include Associated Wi-Fi6 STA Status TLV in AP Metrics Response.</blockquote></div>

<div class="hide"><blockquote><em>false</em>: Do not include Associated Wi-Fi6 STA Status TLV [3] in AP Metrics Response.</blockquote></div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> because it was the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.APMetricsWiFi6"><em>Radio.{i}.APMetricsWiFi6</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.CountryCode">CountryCode</span></td>
<td>string(2)</td>
<td>R</td>
<td><p>Two-character country code in which the Multi-AP Agent is operating according to [<a href="#R.ISO3166-1">ISO3166-1</a>]. The characters are encoded as UTF-8.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements."><em>DataElements</em></a> is the same as <a href="#D.Device:2.Device.WiFi.Radio."><em>Device.WiFi.Radio.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.Radio.RegulatoryDomain"><em>Device.WiFi.Radio.{i}.RegulatoryDomain</em></a>.</span></p></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.AssociatedSTAinAPMetricsWiFi6">AssociatedSTAinAPMetricsWiFi6</span></td>
<td>boolean</td>
<td>W</td>
<td><div class="hide">For EasyMesh [<a href="#R.EasyMesh">EasyMesh</a>], this is the Associated Wi-Fi6 STA Status Inclusion Policy.</div>

<div class="hide"><blockquote><em>true</em>: Include Associated Wi-Fi6 STA Status TLV in AP Metrics Response;</blockquote></div>

<div class="hide"><blockquote><em>false</em>: Do not include Associated Wi-Fi6 STA Status TLV in AP Metrics Response.</blockquote></div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> because it was the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.APMetricsWiFi6"><em>Radio.{i}.APMetricsWiFi6</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.IEEE1905Security.">Device.WiFi.DataElements.Network.Device.{i}.IEEE1905Security.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object describes the IEEE 1905 security capabilities.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.IEEE1905Security.OnboardingProtocol"><em>OnboardingProtocol</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.IEEE1905Security.OnboardingProtocol">OnboardingProtocol</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>Onboarding protocols supported;</p>

<blockquote>0: 1905 <span class="removed">Device.</span><span class="inserted">Device Provisioning Protocol as defined in the EasyMesh [<a href="#R.EasyMesh">EasyMesh</a>] 1905 Layer Security Capability TLV.</span></blockquote></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.AnticipatedChannels.">Device.WiFi.DataElements.Network.Device.{i}.AnticipatedChannels.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object contains a table of Wi-Fi 6 [<a href="#R.802.11ax">802.11ax</a>] operating
classes, and channels within those operating classes, which have
anticipated channel preference.</p>

<p>Operating Class contains an enumerated value from
[<a href="#R.802.11-2020">Table E-4/802.11-2020</a>]}.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.AnticipatedChannels.OpClass"><em>OpClass</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.AnticipatedChannels.OpClass">OpClass</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td><p>The Operating Class per [<a href="#R.802.11-2020">Table E-4/802.11-2020</a>].</p>

<p>Note that the operating class identifies the band and channel width.<span class="removed"> This changed from readOnly to readWrite in version 2.15.</span></p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.AnticipatedChannels.ChannelList">ChannelList</span></td>
<td>unsignedInt(:255)[]</td>
<td>R</td>
<td>Comma-separated list of unsigned integers (up to 255). The channel numbers in this Operating <span class="removed">Class.</span><span class="inserted">Class which have anticipated channel preference.</span></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.">Device.WiFi.DataElements.Network.Device.{i}.MultiAPDevice.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents an individual Access Point device.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.ManufacturerOUI">ManufacturerOUI</span></td>
<td>string(6)</td>
<td>R</td>
<td><p>Organizationally unique identifier of the Access Point device manufacturer. Represented as a six hexadecimal-digit value using all upper-case letters and including any leading zeros. Possible patterns:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.ManufacturerOUI.0-9A-F6"><code>[0-9A-F]{6}</code></span></li></ul>

<p>The value MUST be a valid OUI as defined in [<a href="#R.OUI">OUI</a>].</p>

<p>This value MUST remain fixed over the lifetime of the device, including across firmware updates.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice."><em>MultiAPDevice</em></a> is the same as <a href="#D.Device:2.Device."><em>Device.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.DeviceInfo.ManufacturerOUI"><em>Device.DeviceInfo.ManufacturerOUI</em></a>.</span></p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.">Device.WiFi.DataElements.Network.Device.{i}.MultiAPDevice.Backhaul.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object represents an individual Access Point device’s Backhaul and
unique aspects in the Wi-Fi network.</p>

<p>The endpoints of the backhaul interface are represented by the
(Device’s ID and interface MAC Address). This object represents the
upward view of the backhaul interface. The two endpoints of the
backhaul interface are - (<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.BackhaulDeviceID"><em>BackhaulDeviceID</em></a>,
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.BackhaulMACAddress"><em>BackhaulMACAddress</em></a>) of the uplinked Backhaul Device -
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.MACAddress"><em>MACAddress</em></a> of this Access Point Device</p>

<p><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.BackhaulDeviceID"><em>BackhaulDeviceID</em></a> / <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.BackhaulMACAddress"><em>BackhaulMACAddress</em></a> &lt;–
<a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.LinkType"><em>LinkType</em></a> — &lt; <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.MACAddress"><em>MACAddress</em></a></p>

<p>an empty string is reserved for the <em>Backhaul</em> instance that represents the
Multi-AP Controller.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.Stats.">Device.WiFi.DataElements.Network.Device.{i}.MultiAPDevice.Backhaul.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the statistics of the backhaul interface view
from the current Device’s ID</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.Stats.SignalStrength">SignalStrength</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td>An indicator of radio signal strength of the backhaul link of the Access Point (AP) to the Multi-AP Controller, measured in <em>dBm</em>. RCPI<span class="removed"> threshold</span> is encoded per [<a href="#R.802.11-2020">Table 9-176/802.11-2020</a>]. The value of this parameter is indeterminate if the value of the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.LinkType"><em>LinkType</em></a> parameter is anything other than <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.LinkType.Wi-Fi"><em>Wi-Fi</em></a>.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object represents all of the individual Radios contained within
the identified Access Point device known to the controller.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ID"><em>ID</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Enabled">Enabled</span></td>
<td>boolean</td>
<td>R</td>
<td><p>Indicates whether this radio is enabled or disabled.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio."><em>Radio</em></a> is the same as <a href="#D.Device:2.Device.WiFi.Radio."><em>Device.WiFi.Radio.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.Radio.Enable"><em>Device.WiFi.Radio.{i}.Enable</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Noise">Noise</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td><p>An indicator of the average radio noise plus interference power measured for the primary operating channel.</p>

<p>Encoded as defined for ANPI in [<a href="#R.802.11-2020">Section 11.10.9.4/802.11-2020</a>].</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio."><em>Radio</em></a> is the same as <a href="#D.Device:2.Device.WiFi.Radio."><em>Device.WiFi.Radio.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.Radio.Stats.Noise"><em>Device.WiFi.Radio.{i}.Stats.Noise</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.APMetricsWiFi6">APMetricsWiFi6</span></td>
<td>boolean</td>
<td>W</td>
<td><p><span class="removed"> </span>Associated Wi-Fi6 STA Status Inclusion Policy.</p>

<blockquote><em>true</em>: include Associated Wi-Fi6 STA Status TLV in AP Metrics Response.</blockquote>

<blockquote><em>false</em>: do not include Associated Wi-Fi6 STA Status TLV [3] in AP Metrics Response.</blockquote>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed access = <em>readOnly</em> ⇒ <em>readWrite</em></li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanCapability.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanCapability.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object describes the channel scan capabilities of a radio.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanCapability.OpClassChannels.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.ScanCapability.OpClassChannels.{i}.</span></td>
<td><span title="object(1:∞)">object(1:)</span></td>
<td>R</td>
<td><p>Table of the operating classes (selected from
[<a href="#R.802.11-2020">Table E-4/802.11-2020</a>]) and channel numbers in each operating
class that the radio is capable of scanning.</p>

<p>This table MUST contain at least 1 entry.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanCapability.OpClassChannels.OpClass"><em>OpClass</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanCapability.OpClassChannels.ChannelList">ChannelList</span></td>
<td>unsignedInt(:255)[]</td>
<td>R</td>
<td>Comma-separated list of unsigned integers (up to 255). The channel numbers in this Operating Class <span class="removed">for </span>which the <span class="removed">capability</span><span class="inserted">radio</span> is <span class="removed">being</span><span class="inserted">capable</span> <span class="removed">described.</span><span class="inserted">of scanning.</span></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CACCapability.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object describes the Channel Availability Check (CAC) capabilities
of a radio.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.CACMethod.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CACCapability.CACMethod.{i}.</span></td>
<td><span title="object(0:4)">object(0:4)</span></td>
<td>R</td>
<td><p>List of Channel Availability Check (CAC) method information for each
type of CAC that the radio can perform. Each type is defined by a
method and time to complete. For each type, the classes and channels
allowed are enumerated.</p>

<p>This table MUST contain at least 0 and at most 4 entries.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.CACMethod.Method"><em>Method</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.CACMethod.OpClassChannels.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CACCapability.CACMethod.{i}.OpClassChannels.{i}.</span></td>
<td><span title="object(1:∞)">object(1:)</span></td>
<td>R</td>
<td><p>Table of the operating classes (selected from
[<a href="#R.802.11-2020">Table E-4/802.11-2020</a>]) and channel numbers in each operating
class supported for this method of CAC.</p>

<p>This table MUST contain at least 1 entry.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.CACMethod.OpClassChannels.OpClass"><em>OpClass</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.CACMethod.OpClassChannels.OpClass">OpClass</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td><p>The Operating Class per [<a href="#R.802.11-2020">Table E-4/802.11-2020</a>]<span class="removed"> For 2.4GHz and 5GHz bands, only 20MHz Operating Classes are valid.</span><span class="inserted">.</span></p>

<p>Note that the operating class identifies the band and channel width.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.CACMethod.OpClassChannels.ChannelList">ChannelList</span></td>
<td>unsignedInt(:255)[]</td>
<td>R</td>
<td>Comma-separated list of unsigned integers (up to 255). The channel numbers in this Operating Class <span class="inserted">that are supported </span>for <span class="removed">which</span><span class="inserted">this</span> <span class="removed">the</span><span class="inserted">method</span> <span class="removed">capability</span><span class="inserted">of</span> <span class="removed">is being described.</span><span class="inserted">CAC.</span></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Capabilities.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the capabilities of the radio which may be
different from the current operational configuration.</td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.HECapabilities">HECapabilities</span></td>
<td>base64(4:14)</td>
<td>R</td>
<td><div class="hide">Describes the HE capabilities of the radio as defined by the HECapabilities TLV [<a href="#R.EasyMesh">Section 17.2.10/EasyMesh</a>].</div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because it is superseded by **{{object: non-existent [WiFi6APRole]{.inserted</span>}** and <strong>{{object: non-existent <span class="inserted">WiFi6bSTARole</span>}}</strong>}}.<span class="click"></span></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Describes one of the current Operating Classes in use by this Radio.
One Operating Class is indicated for each current Operating Channel
Bandwidth.</p>

<p>The Channel indicated for the 20 MHz Operating Class is equal to the
current primary channel.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Class"><em>Class</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.TransmitPowerLimit">TransmitPowerLimit</span></td>
<td>int(-128:127)</td>
<td>R</td>
<td>This is the upper limit on nominal transmit Equivalent Isotropically Radiated Power (EIRP) that this radio is allowed to use for the current <span class="removed">{param|</span><span class="inserted"><em>TransmitPowerLimit</em>Class<span class="removed">}}</span></span>. In units of decibels relative to 1 mW <em>dBm</em>.<span class="removed">}}</span></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.DisAllowedOpClassChannels.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.DisAllowedOpClassChannels.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>The operating classes, and list of channels for each operating class,
which are not allowed to be used on this radio.</p>

<p>At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.DisAllowedOpClassChannels.OpClass"><em>OpClass</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.DisAllowedOpClassChannels.OpClass">OpClass</span></td>
<td>unsignedInt(:255)</td>
<td>W</td>
<td><p>The Operating Class per [<a href="#R.802.11-2020">Table E-4/802.11-2020</a>]<span class="removed"> For 2.4GHz and 5GHz bands, only 20MHz Operating Classes are valid.</span><span class="inserted">.</span></p>

<p>Note that the operating class identifies the band and channel width.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.DisAllowedOpClassChannels.ChannelList">ChannelList</span></td>
<td>unsignedInt(:255)[]</td>
<td>W</td>
<td>Comma-separated list of unsigned integers (up to 255). The channel numbers in this Operating Class <span class="removed">for</span><span class="inserted">that</span> <span class="removed">which</span><span class="inserted">are</span> <span class="removed">the</span><span class="inserted">not</span> <span class="removed">capability</span><span class="inserted">allowed</span> <span class="removed">is</span><span class="inserted">to</span> <span class="removed">being</span><span class="inserted">be</span> <span class="removed">described.</span><span class="inserted">used on this radio.</span></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>A single logical BSS operating on this radio.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.BSSID"><em>BSSID</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.BSSID">BSSID</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC Address of the logical BSS (BSSID).</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>BSS</em></a> is the same as <a href="#D.Device:2.Device.WiFi.SSID."><em>Device.WiFi.SSID.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.SSID.BSSID"><em>Device.WiFi.SSID.{i}.BSSID</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.SSID">SSID</span></td>
<td>string</td>
<td>R</td>
<td><p>The SSID in use for this BSS.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>BSS</em></a> is the same as <a href="#D.Device:2.Device.WiFi.SSID."><em>Device.WiFi.SSID.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.SSID.SSID"><em>Device.WiFi.SSID.{i}.SSID</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.Enabled">Enabled</span></td>
<td>boolean</td>
<td>R</td>
<td><p>Whether the BSSID is currently enabled (beaconing frames are being sent) or disabled.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>BSS</em></a> is the same as <a href="#D.Device:2.Device.WiFi.SSID."><em>Device.WiFi.SSID.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.SSID.Enable"><em>Device.WiFi.SSID.{i}.Enable</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.LastChange">LastChange</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>Time in <em>seconds</em> since the last change to the <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.Enabled"><em>Enabled</em></a> value.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>BSS</em></a> is the same as <a href="#D.Device:2.Device.WiFi.SSID."><em>Device.WiFi.SSID.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.SSID.LastChange"><em>Device.WiFi.SSID.{i}.LastChange</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.QMDescriptor.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.QMDescriptor.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object contains a table of <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.QMDescriptor.DescriptorElement"><em>DescriptorElement</em></a>.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.QMDescriptor.ClientMAC"><em>ClientMAC</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.QMDescriptor.DescriptorElement">DescriptorElement</span></td>
<td>hexBinary</td>
<td>R</td>
<td><p>The descriptor element. One of:</p>

<blockquote>MSCS descriptor element (as described in [<a href="#R.802.11-2020">Section 9.4.2.243/802.11-2020</a>], or</blockquote>

<blockquote>SCS descriptor element (as described in [<a href="#R.802.11-2020">Section 9.4.2.121/802.11-2020</a>], or</blockquote>

<blockquote>QoS Management DSCP policy element (as described in **{{bibref: non-existent <strong>{{inserted: unexpected argument Section 9.4.2.94 after: 802.11-2020}}</strong> and **{{bibref: non-existent }}<strong>RFC8325}}</strong>).</blockquote></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Object describing a single Associated Device (STA).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of an associated device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.MACAddress"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.MACAddress</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.HECapabilities">HECapabilities</span></td>
<td>base64(4:14)</td>
<td>R</td>
<td><div class="hide">Describes the HE capabilities of the Associated Device (STA).</div>

<div class="chevron">This parameter was DEPRECATED in 2.15<span class="hide"> because it is superseded by **{{object: non-existent [WiFi6Capabilities]{.inserted</span>}**}}.<span class="click"></span></div></td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.LastDataDownlinkRate">LastDataDownlinkRate</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The data transmit rate in <em>kbps</em> that was most recently used for transmission of data from the access point to the associated device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.LastDataDownlinkRate"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataDownlinkRate</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.LastDataUplinkRate">LastDataUplinkRate</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The data transmit rate in <em>kbps</em> that was most recently used for transmission of data from the associated device to the access point.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.LastDataUplinkRate"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.LastDataUplinkRate</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.SignalStrength">SignalStrength</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td><p>An indicator of radio signal strength of the uplink from the associated STA to the access point - measured in <em>dBm</em>. RCPI <span class="removed">threshold</span><span class="inserted">is</span> <span class="removed">(encoded</span><span class="inserted">encoded</span> per [<a href="#R.802.11-2020">Table 9-176/802.11-2020</a>]<span class="removed">},</span><span class="inserted">,</span> and described in [<a href="#R.EasyMesh">Section 10.3.1/EasyMesh</a>]). Reserved: 221 - 255.</p>

<p>NOTE: The underlying WFA specification is in the process of being reviewed for possible clarification. Please refer to that specification for more details.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.SignalStrength"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.SignalStrength</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.BytesSent">BytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes transmitted to the Associated Device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.BytesSent"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesSent</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.BytesReceived">BytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes received from the Associated Device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.BytesReceived"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.BytesReceived</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets transmitted to the Associated Device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.PacketsSent"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsSent</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets received from the Associated Device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.PacketsReceived"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.PacketsReceived</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.ErrorsSent">ErrorsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of outbound packets that could not be transmitted because of errors. These might be due to the number of retransmissions exceeding the retry limit, or from other causes.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.ErrorsSent"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.ErrorsSent</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.ErrorsReceived">ErrorsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of inbound packets that contained errors preventing them from being delivered to a higher-layer protocol.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.ErrorsReceived"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.ErrorsReceived</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.RetransCount">RetransCount</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of transmitted packets which were retransmissions. Two retransmissions of the same packet results in this counter incrementing by two.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>STA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.RetransCount"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.RetransCount</em></a>.</span></p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MultiAPSTA.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>The summary of statistics and operations for an individual STA on the
Wi-Fi network.</p>

<p>The counters contained in <em>MultiAPSTA</em> are all reset on reboot.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MultiAPSTA.AssociationTime">AssociationTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Date and time in UTC when the device was associated.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MultiAPSTA."><em>MultiAPSTA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.AssociationTime"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.AssociationTime</em></a>.</span></p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MultiAPSTA.Noise">Noise</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td><p>An indicator of the average radio noise plus interference power measured on the uplink from the Associated Device (STA) to the Access Point (AP).</p>

<p>Encoded as defined for ANPI in [<a href="#R.802.11-2020">Section 11.10.9.4/802.11-2020</a>].</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MultiAPSTA."><em>MultiAPSTA</em></a> is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Noise"><em>Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Noise</em></a>.</span></p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.">Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.UnassociatedSTA.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Each instance represents a Non-AP STA that has been discovered by the
Radio but is not associated to any of the BSS operating on the Radio.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.SignalStrength">SignalStrength</span></td>
<td>unsignedInt(:255)</td>
<td>R</td>
<td><p>An indicator of radio signal strength (RCPI) of the uplink from the Non-AP STA - measured in <em>dBm</em>. <span class="removed">(RCPI threshold</span><span class="inserted">RCPI</span> is encoded per [<a href="#R.802.11-2020">Table 9-176/802.11-2020</a>], and described in [<a href="#R.EasyMesh">Section 10.3.2/EasyMesh</a>]<span class="removed">).</span><span class="inserted">.</span> Reserved: 221 - 255.</p>

<p>NOTE: The underlying WFA specification is in the process of being reviewed for possible clarification. Please refer to that specification for more details.</p></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.">Device.WiFi.DataElements.AssociationEvent.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains the events generated when a STA associates to a
BSS.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.">Device.WiFi.DataElements.AssociationEvent.AssociationEventData.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>The events generated when an Associated Device (STA) associates to a
BSS.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.ClientCapabilities"><em>ClientCapabilities</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.HECapabilities">HECapabilities</span></td>
<td>base64(4:14)</td>
<td>R</td>
<td><div class="hide">Describes the HE capabilities of the Associated Device (STA).</div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> because it is superseded by <a href="#D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.WiFi6Capabilities."><em>WiFi6Capabilities</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.ClientCapabilities">ClientCapabilities</span></td>
<td>base64</td>
<td>R</td>
<td>The frame body of the (Re)Association Request frame received from this
client (STA), as defined in Table 9-34 and Table 9-36 of
[<a href="#R.802.11-2020">802.11-2020</a>] in the order of the underlying referenced
standard.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.Radio.">Device.WiFi.Radio.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object models an 802.11 wireless radio on a device (a stackable
interface object as described in [<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]).</p>

<p>If the device can establish more than one connection simultaneously
(e.g. a dual radio device), a separate <em>Radio</em> instance MUST be used
for each physical radio of the device. See [<a href="#R.TR-181i2">Appendix
III.1/TR-181i2</a>] for additional information.</p>

<p>Note: A dual-band single-radio device (e.g. an 802.11a/b/g radio) can
be configured to operate at 2.4 or 5 GHz frequency bands, but only a
single frequency band is used to transmit/receive at a given time.
Therefore, a single <em>Radio</em> instance is used even for a dual-band
radio.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.Radio.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.WiFi.Radio.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enables or disables the radio.</p>

<p>This parameter is based on <em>ifAdminStatus</em> from [<a href="#R.RFC2863">RFC2863</a>].</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Enabled"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Enabled</em></a>.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands">SupportedFrequencyBands</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. List items indicate the frequency bands at which the radio
can operate.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.2.4GHz"><em>2.4GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.5GHz"><em>5GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.6GHz"><em>6GHz</em></span> (Added in 2.16)</li></ul>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>6GHz</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards">SupportedStandards</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. List items indicate which IEEE 802.11 standards this <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> instance can support simultaneously, in the frequency band specified by <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a>. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.a"><em>a</em></span> ([<a href="#R.802.11a-1999">802.11a-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.b"><em>b</em></span> ([<a href="#R.802.11b-1999">802.11b-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.g"><em>g</em></span> ([<a href="#R.802.11g-2003">802.11g-2003</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></span> ([<a href="#R.802.11n-2009">802.11n-2009</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.ac"><em>ac</em></span> ([<a href="#R.802.11ac-2013">802.11ac-2013</a>])</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></span> ([<a href="#R.802.11ax">802.11ax</a>])</li></ul>

<p>Each value indicates support for the indicated standard.</p>

<p>If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a> are allowed.</p>

<p>If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ac"><em>ac</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a> are allowed.</p>

<p><span class="inserted">If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.6GHz"><em>6GHz</em></a>, only value <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a> is allowed.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.OperatingStandards">OperatingStandards</span></td>
<td>string[]</td>
<td>W</td>
<td><p>Each list item MUST be a member of the list reported by the <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards"><em>SupportedStandards</em></a> parameter. Comma-separated list of strings. List items indicate which IEEE 802.11 standard this <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> instance is configured for.</p>

<p>Each value indicates support for the indicated standard.</p>

<p>If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a> are allowed.</p>

<p>If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ac"><em>ac</em></a>, <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a> are<span class="inserted"> allowed.</span></p>

<p>If <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.6GHz"><em>6GHz</em></a>, only value <a href="#D.Device:2.Device.WiFi.Radio.SupportedStandards.ax"><em>ax</em></a> is allowed.</p>

<p>For example, a value of &ldquo;g,b&rdquo; (or &ldquo;b,g&rdquo; - order is not important) means that the 802.11g standard [<a href="#R.802.11g-2003">802.11g-2003</a>] is used with a backwards-compatible mode for 802.11b [<a href="#R.802.11b-1999">802.11b-1999</a>]. A value of &ldquo;g&rdquo; means that only the 802.11g standard can be used.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Channel">Channel</span></td>
<td>unsignedInt(1:255)</td>
<td>W</td>
<td><p>The current radio channel used by the connection. To request automatic channel selection, set <a href="#D.Device:2.Device.WiFi.Radio.AutoChannelEnable"><em>AutoChannelEnable</em></a> to <em>true</em>.</p>

<p>Whenever <a href="#D.Device:2.Device.WiFi.Radio.AutoChannelEnable"><em>AutoChannelEnable</em></a> is <em>true</em>, the value of the <em>Channel</em> parameter MUST be the channel selected by the automatic channel selection procedure.</p>

<p>For channels in &ldquo;wide mode&rdquo; (802.11n where a 40MHz channel bandwidth is used), this parameter is used for Primary Channel only. The secondary or extension channel information is available through <a href="#D.Device:2.Device.WiFi.Radio.ExtensionChannel"><em>ExtensionChannel</em></a>.</p>

<p>Note: Valid <em>Channel</em> values depend on the <a href="#D.Device:2.Device.WiFi.Radio.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> value specified and the <a href="#D.Device:2.Device.WiFi.Radio.RegulatoryDomain"><em>RegulatoryDomain</em></a>.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.Channel"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.Channel</em></a>.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.FirmwareVersion">FirmwareVersion</span></td>
<td>string(:64)</td>
<td>R</td>
<td><p>This radio’s WiFi firmware version.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device."><em>Device</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device.WiFi.DataElements.Network.Device.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.SoftwareVersion"><em>Device.WiFi.DataElements.Network.Device.{i}.SoftwareVersion</em></a>.</span></p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths">SupportedOperatingChannelBandwidths</span></td>
<td>string[]</td>
<td>R</td>
<td>Comma-separated list of strings. These are the valid writable values for <a href="#D.Device:2.Device.WiFi.Radio.OperatingChannelBandwidth"><em>OperatingChannelBandwidth</em></a>.

<div class="inserted"><p>Each list item is an enumeration of: Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.20MHz"><em>20MHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.40MHz"><em>40MHz</em></span> (wide mode)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.80MHz"><em>80MHz</em></span> (802.11ac and 802.11ax only)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.160MHz"><em>160MHz</em></span> (802.11ac and 802.11ax only)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.8080MHz"><em>80+80MHz</em></span> (802.11ac and 802.11ax only)</li>
<li><span id="D.Device:2.Device.WiFi.Radio.SupportedOperatingChannelBandwidths.Auto"><em>Auto</em></span></li></ul></div></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth">CurrentOperatingChannelBandwidth</span></td>
<td>string</td>
<td>R</td>
<td>The channel bandwidth currently in use.<span class="inserted"> <strong>{{enum: only valid as argument}}</strong></span></td>
<td>-</td>
<td>2.11</td></tr></tbody>
<tbody class="showable">
<tr class="obsoleted-parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.CenterFrequencySegement0">CenterFrequencySegement0</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><div class="hide">When operating in <a href="#D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.8080MHz"><em>80+80MHz</em></a>, this parameter determines the Center Frequency Segment 0 for the first 80 MHz channel. See [<a href="#R.802.11-2016">Section 9.4.2.161/802.11-2016</a>] and Table 9-252.</div>

<div class="hide">This parameter was DEPRECATED in 2.14 due to a typo. Use <a href="#D.Device:2.Device.WiFi.Radio.CenterFrequencySegment0"><em>CenterFrequencySegment0</em></a> instead.</div>

<div class="inserted"><div class="chevron">This parameter was OBSOLETED in 2.16.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div></div></td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody class="showable">
<tr class="obsoleted-parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.CenterFrequencySegement1">CenterFrequencySegement1</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><div class="hide">When operating in <a href="#D.Device:2.Device.WiFi.Radio.CurrentOperatingChannelBandwidth.8080MHz"><em>80+80MHz</em></a>, this parameter determines the Center Frequency Segment 1 for the second 80 MHz channel. See [<a href="#R.802.11-2016">Section 9.4.2.161/802.11-2016</a>] and Table 9-252.</div>

<div class="hide">This parameter was DEPRECATED in 2.14 due to a typo. Use <a href="#D.Device:2.Device.WiFi.Radio.CenterFrequencySegment1"><em>CenterFrequencySegment1</em></a> instead.</div>

<div class="inserted"><div class="chevron">This parameter was OBSOLETED in 2.16.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div></div></td>
<td>-</td>
<td>2.13</td></tr></tbody>
<tbody>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.TransmitPower">TransmitPower</span></td>
<td>int(-1:100)</td>
<td>W</td>
<td><p>Indicates the current transmit power level as a <em>percentage</em> of full power. The value MUST be one of the values reported by the <a href="#D.Device:2.Device.WiFi.Radio.TransmitPowerSupported"><em>TransmitPowerSupported</em></a> parameter. A value of -1 indicates auto mode (automatic decision by CPE).</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.TxPower"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.CurrentOperatingClassProfile.{i}.TxPower</em></a>.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.RegulatoryDomain">RegulatoryDomain</span></td>
<td>string(3)</td>
<td>W</td>
<td><p>The 802.11d Regulatory Domain. First two octets are [<a href="#R.ISO3166-1">ISO3166-1</a>] two-character country code. The third octet is either “ “ (all environments), &ldquo;O&rdquo; (outside) or &ldquo;I&rdquo; (inside).</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device."><em>Device</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device."><em>Device.WiFi.DataElements.Network.Device.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.CountryCode"><em>Device.WiFi.DataElements.Network.Device.{i}.CountryCode</em></a>.</span></p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.Radio.RegulatoryDomain.A-ZA-ZOI"><code>[A-Z][A-Z][ OI]</code></span></li></ul></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.DTIMPeriod">DTIMPeriod</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>This specifies the number of beacon intervals<span class="inserted"> (measured in <em>ms</em>)</span> that elapse between transmission of Beacon frames containing a TIM element whose DTIM Count field is 0. This parameter is based on <em>dot11DTIMPeriod</em> from [<a href="#R.802.11-2020">802.11-2020</a>].

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added unsignedInt <em>ms</em> units</li></ul></div></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.SupportedDataTransmitRates">SupportedDataTransmitRates</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. <span class="removed">Data</span><span class="inserted">Maximum radio data</span> transmit rates in <em>Mbps</em> for unicast frames <span class="removed">at which the access point will permit a station to connect </span>(a <span class="removed">subset</span><span class="inserted">superset</span> of <strong>{{param: non-existent <span class="inserted">BasicDataTransmitRates</span>}}</strong>). Given the <span class="removed">values</span><span class="inserted">value</span> of <a href="#D.Device:2.Device.WiFi.Radio.BasicDataTransmitRates"><em>BasicDataTransmitRates</em></a> <span class="removed">and <a href="#D.Device:2.Device.WiFi.Radio.OperationalDataTransmitRates"><em>OperationalDataTransmitRates</em></a> </span>from the <span class="removed">examples</span><span class="inserted">example</span> above, <em>SupportedDataTransmitRates</em> might be <span class="removed">&ldquo;1,2,5.5&rdquo;,</span><span class="inserted">&ldquo;1,2,5.5,11&rdquo;,</span> indicating that <span class="removed">the</span><span class="inserted">unicast</span> <span class="removed">AP</span><span class="inserted">frames</span> <span class="removed">will</span><span class="inserted">can</span> <span class="removed">only</span><span class="inserted">additionally</span> <span class="removed">permit</span><span class="inserted">be</span> <span class="removed">connections</span><span class="inserted">transmitted</span> at <span class="removed">1 Mbps, 2</span><span class="inserted">5.5</span> Mbps and <span class="removed">5.5 Mbps, even though it could theoretically accept connections at </span>11 Mbps.</p>

<p><span class="inserted"><em>SupportedDataTransmitRates</em> indicates equipment capability. This radio is capable of supporting these data rates.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.OperationalDataTransmitRates">OperationalDataTransmitRates</span></td>
<td>string[]</td>
<td>W</td>
<td><p>Comma-separated list of strings. <span class="removed">Maximum access point data</span><span class="inserted">Data</span> transmit rates in <em>Mbps</em> for unicast frames <span class="inserted">at which the radio will permit operation with any associated station </span>(a <span class="removed">superset</span><span class="inserted">subset</span> of <strong>{{param: non-existent <span class="inserted">SupportedDataTransmitRates</span>}}</strong>). Given the <span class="removed">value</span><span class="inserted">values</span> of <a href="#D.Device:2.Device.WiFi.Radio.BasicDataTransmitRates"><em>BasicDataTransmitRates</em></a> <span class="inserted">and <a href="#D.Device:2.Device.WiFi.Radio.SupportedDataTransmitRates"><em>SupportedDataTransmitRates</em></a> </span>from the <span class="removed">example</span><span class="inserted">examples</span> above, <em>OperationalDataTransmitRates</em> might be <span class="removed">&ldquo;1,2,5.5,11&rdquo;,</span><span class="inserted">&ldquo;1,2,5.5&rdquo;,</span> indicating that <span class="removed">unicast</span><span class="inserted">the</span> <span class="removed">frames</span><span class="inserted">radio</span> <span class="removed">can</span><span class="inserted">will</span> <span class="removed">additionally</span><span class="inserted">only</span> <span class="removed">be</span><span class="inserted">permit</span> <span class="removed">transmitted</span><span class="inserted">operation</span> at <span class="removed">5.5</span><span class="inserted">1 Mbps, 2</span> Mbps and <span class="inserted">5.5 Mbps, even though it could theoretically operate at </span>11 Mbps.</p>

<p><span class="inserted">This radio is limited to allowing operation only at these data rates. Note: Setting <em>OperationalDataTransmitRates</em> can’t increase the set of possible data rates but could narrow them.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.CCAMeasurementDiagnostic.">Device.WiFi.CCAMeasurementDiagnostic.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object is to provide diagnostic information on a Clear Channel
Assessment (CCA) measurement scan on this radio on the given channel
using a specific <a href="#D.Device:2.Device.WiFi.CCAMeasurementDiagnostic.DwellTime"><em>DwellTime</em></a>.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.WiFi.CCAMeasurementDiagnostic.Frequency"><em>Frequency</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.CCAMeasurementDiagnostic.Frequency">Frequency</span></td>
<td>string</td>
<td>W</td>
<td><p>Frequency of the channel the clear channel assessment (CCA) measurement
is run on.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.CCAMeasurementDiagnostic.Frequency.2.4GHz"><em>2.4GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.CCAMeasurementDiagnostic.Frequency.5GHz"><em>5GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.CCAMeasurementDiagnostic.Frequency.6GHz"><em>6GHz</em></span> (Added in 2.16)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.">Device.WiFi.NeighboringWiFiDiagnostic.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines access to other WiFi SSIDs that this device is able
to receive.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Error"><em>Error</em></span> (READONLY, OPTIONAL)</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.">Device.WiFi.NeighboringWiFiDiagnostic.Result.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Neighboring SSID table. This table models other WiFi SSIDs that this
device is able to receive.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.BSSID"><em>BSSID</em></a>.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled">SecurityModeEnabled</span></td>
<td>string</td>
<td>R</td>
<td><p>The type of encryption the neighboring WiFi SSID advertises.</p>

<p>The <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WEP"><em>WEP</em></a> value indicates either WEP-64 or WEP-128.</p>

<p>The <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA"><em>WPA</em></a> value is the same as WPA-Personal.</p>

<p>The <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2"><em>WPA2</em></a> value is the same as WPA2-Personal.</p>

<p>The <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA-WPA2"><em>WPA-WPA2</em></a> value is the same as WPA-WPA2-Personal.</p>

<p>The <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA3-SAE"><em>WPA3-SAE</em></a> value is the same as WPA3-Personal.</p>

<p>The <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2-PSK-WPA3-SAE"><em>WPA2-PSK-WPA3-SAE</em></a> value is the same as
WPA3-Personal-Transition.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WEP"><em>WEP</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA"><em>WPA</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2"><em>WPA2</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA-WPA2"><em>WPA-WPA2</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA-Enterprise"><em>WPA-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2-Enterprise"><em>WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA3-SAE"><em>WPA3-SAE</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA2-PSK-WPA3-SAE"><em>WPA2-PSK-WPA3-SAE</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.WPA3-Enterprise"><em>WPA3-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SecurityModeEnabled.OWE"><em>OWE</em></span> (Added in 2.16)</li></ul>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>OWE</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand">OperatingFrequencyBand</span></td>
<td>string</td>
<td>R</td>
<td><p>Indicates the frequency band at which the radio this SSID instance is
operating.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand.2.4GHz"><em>2.4GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand.5GHz"><em>5GHz</em></span></li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand.6GHz"><em>6GHz</em></span> (Added in 2.16)</li></ul>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>6GHz</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards">SupportedStandards</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. List items indicate which IEEE 802.11 standards this <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result."><em>Result</em></a> instance can support simultaneously, in the frequency band specified by <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a>. Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.a"><em>a</em></span> ([<a href="#R.802.11a-1999">802.11a-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.b"><em>b</em></span> ([<a href="#R.802.11b-1999">802.11b-1999</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.g"><em>g</em></span> ([<a href="#R.802.11g-2003">802.11g-2003</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></span> ([<a href="#R.802.11n-2009">802.11n-2009</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ac"><em>ac</em></span> ([<a href="#R.802.11ac-2013">802.11ac-2013</a>])</li>
<li><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></span> ([<a href="#R.802.11ax">802.11ax</a>])</li></ul>

<p>Each value indicates support for the indicated standard.</p>

<p>If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a> are allowed.</p>

<p>If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ac"><em>ac</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a> are allowed.</p>

<p><span class="inserted">If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand.6GHz"><em>6GHz</em></a>, only value <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a> is allowed.</span></p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingStandards">OperatingStandards</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Each list item MUST be a member of the list reported by the <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards"><em>SupportedStandards</em></a> parameter. Comma-separated list of strings. List items indicate which IEEE 802.11 standard that is detected for this <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result."><em>Result</em></a>.</p>

<p>Each value indicates support for the indicated standard.</p>

<p>If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.2.4GHz"><em>2.4GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.b"><em>b</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.g"><em>g</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a> are allowed.</p>

<p>If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.5GHz"><em>5GHz</em></a>, only values <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.a"><em>a</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.n"><em>n</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ac"><em>ac</em></a>, <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a> are<span class="inserted"> allowed.</span></p>

<p>If <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.OperatingFrequencyBand"><em>OperatingFrequencyBand</em></a> is set to <a href="#D.Device:2.Device.WiFi.Radio.SupportedFrequencyBands.6GHz"><em>6GHz</em></a>, only value <a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.SupportedStandards.ax"><em>ax</em></a> is allowed.</p>

<p>For example, a value of &ldquo;g,b&rdquo; (or &ldquo;b,g&rdquo; - order is not important) means that the 802.11g standard [<a href="#R.802.11g-2003">802.11g-2003</a>] is used with a backwards-compatible mode for 802.11b [<a href="#R.802.11b-1999">802.11b-1999</a>]. A value of &ldquo;g&rdquo; means that only the 802.11g standard can be used.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.DTIMPeriod">DTIMPeriod</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of beacon intervals<span class="inserted"> (measured in <em>ms</em>)</span> that elapse between transmission of Beacon frames containing a TIM element whose DTIM count field is 0. This value is transmitted in the DTIM Period field of beacon frames. [<a href="#R.802.11-2020">802.11-2020</a>]</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.">Device.WiFi.Radio.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Throughput statistics for this interface. Packet counters here count
802.11 WiFi frames. See [<a href="#R.TR-181i2">Appendix III/TR-181i2</a>] for further
details. The CPE MUST reset the interface’s Stats parameters (unless
otherwise stated in individual object or parameter descriptions) either
when the interface becomes operationally down due to a previous
administrative down (i.e. the interface’s <a href="#D.Device:2.Device.WiFi.Radio.Status"><em>Status</em></a> parameter
transitions to a down state after the interface is disabled) or when
the interface becomes administratively up (i.e. the interface’s
<a href="#D.Device:2.Device.WiFi.Radio.Enable"><em>Enable</em></a> parameter transitions from <em>false</em> to <em>true</em>).
Administrative and operational interface status is discussed in
[<a href="#R.TR-181i2">Section 4.2.2/TR-181i2</a>].</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.Noise">Noise</span></td>
<td>int</td>
<td>R</td>
<td><p>An indicator of average noise strength received at this radio, measured in <em>dBm</em>. This measurement of non-IEEE 802.11 noise power is made by sampling the channel when virtual carrier sense indicates idle and this radio is neither transmitting nor receiving a frame.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.Radio.Stats."><em>Stats</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Noise"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.Noise</em></a>.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.TotalChannelChangeCount">TotalChannelChangeCount</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The total number of times that the <a href="#D.Device:2.Device.WiFi.Radio.Channel"><em>Channel</em></a> has changed since the <strong>{{object: non-existent <span class="inserted">#</span>}}</strong> entered its current operating state.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.ManualChannelChangeCount">ManualChannelChangeCount</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of times that the <a href="#D.Device:2.Device.WiFi.Radio.Channel"><em>Channel</em></a> has changed due to manual channel selection since the <strong>{{object: non-existent <span class="inserted">#</span>}}</strong> entered its current operating state.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.AutoStartupChannelChangeCount">AutoStartupChannelChangeCount</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of times that the <a href="#D.Device:2.Device.WiFi.Radio.Channel"><em>Channel</em></a> has changed due to automatic channel selection procedure launched at radio startup since the <strong>{{object: non-existent <span class="inserted">#</span>}}</strong> entered its current operating state.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.AutoUserChannelChangeCount">AutoUserChannelChangeCount</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of times that the <a href="#D.Device:2.Device.WiFi.Radio.Channel"><em>Channel</em></a> has changed due to automatic channel selection procedure triggered by the user (e.g. via a GUI) since the <strong>{{object: non-existent <span class="inserted">#</span>}}</strong> entered its current operating state.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.AutoRefreshChannelChangeCount">AutoRefreshChannelChangeCount</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of times that the <a href="#D.Device:2.Device.WiFi.Radio.Channel"><em>Channel</em></a> has changed due to automatic channel selection procedure triggered by the <a href="#D.Device:2.Device.WiFi.Radio.AutoChannelRefreshPeriod"><em>AutoChannelRefreshPeriod</em></a> timer since the <strong>{{object: non-existent <span class="inserted">#</span>}}</strong> entered its current operating state.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.AutoDynamicChannelChangeCount">AutoDynamicChannelChangeCount</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of times that the <a href="#D.Device:2.Device.WiFi.Radio.Channel"><em>Channel</em></a> has changed due to automatic channel selection procedure dynamically triggered to adjust to environmental interference since the <strong>{{object: non-existent <span class="inserted">#</span>}}</strong> entered its current operating state.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.Radio.Stats.AutoDFSChannelChangeCount">AutoDFSChannelChangeCount</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of times that the <a href="#D.Device:2.Device.WiFi.Radio.Channel"><em>Channel</em></a> has changed due to automatic channel selection procedure triggered by DFS [<a href="#R.ETSIBRAN">ETSIBRAN</a>] since the <strong>{{object: non-existent <span class="inserted">#</span>}}</strong> entered its current operating state.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.SSID.">Device.WiFi.SSID.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>WiFi SSID table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]), where table entries model the MAC
layer. A WiFi SSID entry is typically stacked on top of a
<a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a> object.</p>

<p>WiFi SSID is also a multiplexing layer, i.e. more than one <em>SSID</em>
can be stacked above a single <a href="#D.Device:2.Device.WiFi.Radio."><em>Radio</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.WiFi.SSID.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.WiFi.SSID.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.WiFi.SSID.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.WiFi.SSID.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.SSID.BSSID"><em>BSSID</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.SSID.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enables or disables the SSID entry.</p>

<p>This parameter is based on <em>ifAdminStatus</em> from [<a href="#R.RFC2863">RFC2863</a>].</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.Enabled"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.Enabled</em></a>.</span></p></td>
<td>false</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.SSID.LastChange">LastChange</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The accumulated time in <em>seconds</em> since the SSID entered its current operational state.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.LastChange"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.LastChange</em></a>.</span></p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.SSID.BSSID">BSSID</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The Basic Service Set ID.</p>

<p>This is the MAC address of the access point, which can either be local (when this instance models an access point SSID) or remote (when this instance models an end point SSID).</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.BSSID"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.BSSID</em></a>.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.SSID.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of this interface.</p>

<p>If this instance models an access point SSID, <em>MACAddress</em> is the same as <a href="#D.Device:2.Device.WiFi.SSID.BSSID"><em>BSSID</em></a>.</p>

<p>Note: This is not necessarily the same as the Ethernet header source or destination MAC address, which is associated with the IP interface and is modeled via the <strong>{{param: non-existent <span class="inserted">##.Ethernet.Link.{i}.MACAddress</span>}}</strong> parameter.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.SSID.SSID">SSID</span></td>
<td>string(:32)</td>
<td>W</td>
<td><p>The current service set identifier in use by the connection. The SSID is an identifier that is attached to packets sent over the wireless LAN that functions as an ID for joining a particular radio network (BSS).</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.SSID"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.SSID</em></a>.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.SSID.SetATF">SetATF</span></td>
<td>unsignedInt(0:100)</td>
<td>W</td>
<td>Configures the ATF setting for all associated devices on an individual SSID. Expressed as <span class="removed">percentage</span><span class="inserted"><em>percent</em></span> of airtime, such that no station should exceed this percentage.</td>
<td>-</td>
<td>2.14</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.">Device.WiFi.AccessPoint.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object models an 802.11 connection from the perspective of a
wireless access point. Each <em>AccessPoint</em> entry is associated with a
particular <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a> interface instance via the
<a href="#D.Device:2.Device.WiFi.AccessPoint.SSIDReference"><em>SSIDReference</em></a> parameter.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.WiFi.AccessPoint.SSIDReference"><em>SSIDReference</em></a> is not a valid
reference then the table entry is inoperable and the CPE MUST set
<a href="#D.Device:2.Device.WiFi.AccessPoint.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.WiFi.AccessPoint.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Note: The <em>AccessPoint</em> table includes a unique key parameter that is a
strong reference. If a strongly referenced object is deleted, the CPE
will set the referencing parameter to an empty string. However, doing so
under these circumstances might cause the updated <em>AccessPoint</em> row to
then violate the table’s unique key constraint; if this occurs, the CPE
MUST set <a href="#D.Device:2.Device.WiFi.AccessPoint.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.WiFi.AccessPoint.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and
disable the offending <em>AccessPoint</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.WiFi.AccessPoint.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.WiFi.AccessPoint.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.AccessPoint.SSIDReference"><em>SSIDReference</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deleted-parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.MaxAssociatedDevices">MaxAssociatedDevices</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><div class="hide">The maximum number of devices that can simultaneously be connected to the access point.</div>

<div class="hide">A value of 0 means that there is no specific limit.</div>

<div class="hide">This parameter was DEPRECATED in 2.13 in favor of <a href="#D.Device:2.Device.WiFi.AccessPoint.MaxAllowedAssociations"><em>MaxAllowedAssociations</em></a>.</div>

<div class="hide">This parameter was OBSOLETED in 2.14-2.15.</div>

<div class="inserted"><div class="chevron">This parameter was DELETED in 2.16.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>obsoleted</em> ⇒ <em>deleted</em></li></ul></div></div></td>
<td>0</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.">Device.WiFi.AccessPoint.{i}.Security.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains security related parameters that apply to a CPE
acting as an Access Point [<a href="#R.802.11-2007">802.11-2007</a>].

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.SPPAMSDU"><em>SPPAMSDU</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.TransitionDisableIndication"><em>TransitionDisableIndication</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported">ModesSupported</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates which security modes this <a href="#D.Device:2.Device.WiFi.AccessPoint."><em>AccessPoint</em></a> instance is
capable of supporting.</p>

<p>The <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></a> value is the same as WPA3-SAE.</p>

<p>The <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></a> value is the same as
WPA2-PSK-WPA3-SAE.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WEP-64"><em>WEP-64</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WEP-128"><em>WEP-128</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.OWE"><em>OWE</em></span> (Added in 2.16)</li></ul>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>OWE</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.WEPKey">WEPKey</span></td>
<td>hexBinary(5,13)</td>
<td>W</td>
<td><p>A WEP key expressed as a hexadecimal string.</p>

<p><em>WEPKey</em> is used only if <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is set to
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WEP-64"><em>WEP-64</em></a> or <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WEP-128"><em>WEP-128</em></a>.</p>

<p>A 5 byte <em>WEPKey</em> corresponds to security mode
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WEP-64"><em>WEP-64</em></a> and a 13 byte <em>WEPKey</em> corresponds to
security mode <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WEP-128"><em>WEP-128</em></a>.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>hexBinary(5,13)</em> syntax hidden = <em>true</em></li>
<li>Added <em>hexBinary(5,13)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey">PreSharedKey</span></td>
<td>hexBinary(:32)</td>
<td>W</td>
<td><p>A literal PreSharedKey (PSK) expressed as a hexadecimal string.</p>

<p><em>PreSharedKey</em> is only used if <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> is set to
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></a>.</p>

<p>If <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase"><em>KeyPassphrase</em></a> is written, then <em>PreSharedKey</em> is immediately
generated. The Controller SHOULD NOT set both the
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase"><em>KeyPassphrase</em></a> and the <em>PreSharedKey</em> directly (the result of
doing this is undefined).</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>hexBinary(:32)</em> syntax hidden = <em>true</em></li>
<li>Added <em>hexBinary(:32)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase">KeyPassphrase</span></td>
<td>string(8:63)</td>
<td>W</td>
<td><p>A passphrase from which the <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a> is to be
generated, for <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></a> security modes.</p>

<p>If <em>KeyPassphrase</em> is written, then <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a> for WPA2 is
immediately generated. The Controller SHOULD NOT set both the
<em>KeyPassphrase</em> and the <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a> directly (the result of
doing this is undefined). The key is generated as specified by WPA,
which uses PBKDF2 from PKCS #5: Password-based Cryptography
Specification Version 2.0 ([<a href="#R.RFC2898">RFC2898</a>]).</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(8:63)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(8:63)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SAEPassphrase">SAEPassphrase</span></td>
<td>string</td>
<td>W</td>
<td><p>A passphrase for <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></a> security modes.</p>

<p>NOTE: this parameter is for WPA3. WPA2 <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.PreSharedKey"><em>PreSharedKey</em></a> is
generated from <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.KeyPassphrase"><em>KeyPassphrase</em></a>.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax hidden = <em>true</em></li>
<li>Added <em>string</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.RadiusSecret">RadiusSecret</span></td>
<td>string</td>
<td>W</td>
<td><p>The secret used for handshaking with the RADIUS server
[<a href="#R.RFC2865">RFC2865</a>].</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax hidden = <em>true</em></li>
<li>Added <em>string</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SecondaryRadiusSecret">SecondaryRadiusSecret</span></td>
<td>string</td>
<td>W</td>
<td><p>The secret used for handshaking with the secondary RADIUS server
[<a href="#R.RFC2865">RFC2865</a>].</p>

<p>If this parameter is not implemented, the secondary RADIUS server
will use the same secret as the primary RADIUS server.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax hidden = <em>true</em></li>
<li>Added <em>string</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SPPAMSDU">SPPAMSDU</span></td>
<td>string</td>
<td>W</td>
<td><p>Signaling and Payload Protected for A-MSDU frames.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SPPAMSDU.Disabled"><em>Disabled</em></span> (This AP does not advertise supporting SPP A-MSDU)</li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SPPAMSDU.Capable"><em>Capable</em></span> (This AP advertises supporting SPP A-MSDU)</li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.Security.SPPAMSDU.Required"><em>Required</em></span> (This AP advertises supporting SPP A-MSDU and refuses non-SPP A-MSDU frames)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Security.TransitionDisableIndication">TransitionDisableIndication</span></td>
<td>boolean</td>
<td>W</td>
<td>Sets the transition disable indication. When this parameter is
enabled with <a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModeEnabled"><em>ModeEnabled</em></a> set to a transition mode, such as
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></a>, stations connected to
the AP are not allowed to transition between the security modes
allowed by the transition mode. Stations capable of the more secure
security mode allowed by the transition, as defined in
[<a href="#R.WPA3v3.0">WPA3v3.0</a>], will always communicate to the AP using it.</td>
<td>true</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.">Device.WiFi.AccessPoint.{i}.WPS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters related to Wi-Fi Protected Setup for this access point (as specified in [<a href="#R.WPSv1.0">WPSv1.0</a>] or <span class="removed">{bibref|WPSv2.0</span><span class="inserted">[<a href="#R.WPS2.0">WPS 2.0</a>]).</span><span class="removed">).}}</span></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p><span class="removed"><strong>{{list: parameter is not a list}}</strong> </span>Indicates the current status of WPS. If the device goes to <a href="#D.Device:2.Device.WiFi.AccessPoint.WPS.Status.SetupLocked"><em>SetupLocked</em></a> the WPS needs to be disabled and re-enabled to come out of state.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.Status.Error"><em>Error</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.Status.Unconfigured"><em>Unconfigured</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.Status.Configured"><em>Configured</em></span></li>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.Status.SetupLocked"><em>SetupLocked</em></span></li></ul></td>
<td>-</td>
<td>2.11</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.PIN">PIN</span></td>
<td>string(:8)</td>
<td>W</td>
<td><p>Represents the Device PIN used for PIN based pairing between WPS peers. This PIN is either a four digit number or an eight digit number.<span class="removed">{{hidden}}</span></p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.AccessPoint.WPS.PIN.d4d8"><code>\d{4}|\d{8}</code></span></li></ul>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:8)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:8)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.11</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.">Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>A table of the devices currently associated with the access point.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.MACAddress"><em>MACAddress</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.MACAddress">MACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>R</td>
<td><p>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of an associated device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MACAddress"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MACAddress</em></a>.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.SetStaATF">SetStaATF</span></td>
<td>unsignedInt(0:100)</td>
<td>W</td>
<td>Configures the Air Time Fairness (ATF) setting of this individual associated device. Expressed as <span class="removed">percentage</span><span class="inserted"><em>percent</em></span> of airtime, such that this associated device should not exceed this percentage. Setting this value overrides <strong>{{param: non-existent <span class="inserted">##.SSID.{i}.SetATF</span>}}</strong> for this associated device.</td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.LastDataDownlinkRate">LastDataDownlinkRate</span></td>
<td>unsignedInt(1000:)</td>
<td>R</td>
<td><p>The data transmit rate in <em>kbps</em> that was most recently used for transmission from the access point to the associated device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.LastDataDownlinkRate"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.LastDataDownlinkRate</em></a>.</span></p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.LastDataUplinkRate">LastDataUplinkRate</span></td>
<td>unsignedInt(1000:)</td>
<td>R</td>
<td><p>The data transmit rate in <em>kbps</em> that was most recently used for transmission from the associated device to the access point.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.LastDataUplinkRate"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.LastDataUplinkRate</em></a>.</span></p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.AssociationTime">AssociationTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>Date and time in UTC when the device was associated</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.LastConnectTime"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.LastConnectTime</em></a>.</span></p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.SignalStrength">SignalStrength</span></td>
<td>int(-200:0)</td>
<td>R</td>
<td><p>An indicator of radio signal strength of the uplink from the associated device to the access point, measured in <em>dBm</em>, as an average of the last 100 packets received from the device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.SignalStrength"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.SignalStrength</em></a>.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Noise">Noise</span></td>
<td>int(-200:0)</td>
<td>R</td>
<td><p>An indicator of radio noise on the uplink from the associated device to the access point, measured in <em>dBm</em>, as an average of the last 100 packets received from the device (see ANPI definition in [<a href="#R.802.11-2012">Clause 10.11.9.4/802.11-2012</a>])</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MultiAPSTA.Noise"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.MultiAPSTA.Noise</em></a>.</span></p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Retransmissions">Retransmissions</span></td>
<td>unsignedInt(0:100)</td>
<td>R</td>
<td><p>The number of <em>packets</em> that had to be re-transmitted, from the last 100 packets sent to the associated device. Multiple re-transmissions of the same packet count as one.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.RetransCount"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.RetransCount</em></a>.</span></p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.">Device.WiFi.AccessPoint.{i}.AssociatedDevice.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>These count bytes or packets sent to, or received from, this Associated
Device, which is a WiFi station associated to this access point. Packet
counters here count 802.11 WiFi frames.</p>

<p>The CPE MUST reset these <em>Stats</em> parameters (unless otherwise stated
in individual object or parameter descriptions) either when the
<a href="#D.Device:2.Device.WiFi.AccessPoint.Status"><em>Status</em></a> of the parent <a href="#D.Device:2.Device.WiFi.AccessPoint."><em>AccessPoint</em></a> object transitions from
<a href="#D.Device:2.Device.WiFi.AccessPoint.Status.Disabled"><em>Disabled</em></a> to <a href="#D.Device:2.Device.WiFi.AccessPoint.Status.Enabled"><em>Enabled</em></a>, or when it
transitions from <a href="#D.Device:2.Device.WiFi.AccessPoint.Status.Enabled"><em>Enabled</em></a> to
<a href="#D.Device:2.Device.WiFi.AccessPoint.Status.Disabled"><em>Disabled</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.BytesSent">BytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes transmitted to the Associated Device, including framing characters.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.BytesSent"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.BytesSent</em></a>.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.BytesReceived">BytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes received from the Associated Device, including framing characters.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.BytesReceived"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.BytesReceived</em></a>.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets transmitted to the Associated Device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.PacketsSent"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.PacketsSent</em></a>.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of packets received from the Associated Device.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.PacketsReceived"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.PacketsReceived</em></a>.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.ErrorsSent">ErrorsSent</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of outbound packets that could not be transmitted because of errors. These might be due to the number of retransmissions exceeding the retry limit, or from other causes.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.ErrorsSent"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.ErrorsSent</em></a>.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.ErrorsReceived">ErrorsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of inbound packets that contained errors preventing them from being delivered to a higher-layer protocol.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.ErrorsReceived"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.ErrorsReceived</em></a>.</span></p></td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.RetransCount">RetransCount</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of transmitted packets which were retransmissions. Two retransmissions of the same packet results in this counter incrementing by two.</p>

<p><span class="inserted">If the instance of this <a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice."><em>AssociatedDevice</em></a> is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA."><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.</em></a>, then this parameter is the same as <a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.RetransCount"><em>Device.WiFi.DataElements.Network.Device.{i}.Radio.{i}.BSS.{i}.STA.{i}.RetransCount</em></a>.</span></p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Accounting.">Device.WiFi.AccessPoint.{i}.Accounting.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains the parameters related to RADIUS accounting
functionality for the access point.</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Accounting.Secret">Secret</span></td>
<td>string</td>
<td>W</td>
<td><p>The secret used for handshaking with the RADIUS accounting server
[<a href="#R.RFC2865">RFC2865</a>].</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax hidden = <em>true</em></li>
<li>Added <em>string</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.AccessPoint.Accounting.SecondarySecret">SecondarySecret</span></td>
<td>string</td>
<td>W</td>
<td><p>The secret used for handshaking with the secondary RADIUS accounting
server [<a href="#R.RFC2865">RFC2865</a>].</p>

<p>If this parameter is not implemented, the secondary RADIUS server
will use the same secret as the primary RADIUS server.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax hidden = <em>true</em></li>
<li>Added <em>string</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.">Device.WiFi.EndPoint.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object models an 802.11 connection from the perspective of a
wireless end point. Each <em>EndPoint</em> entry is associated with a
particular <a href="#D.Device:2.Device.WiFi.SSID."><em>SSID</em></a> interface instance via the
<a href="#D.Device:2.Device.WiFi.EndPoint.SSIDReference"><em>SSIDReference</em></a> parameter, and an associated active
<a href="#D.Device:2.Device.WiFi.EndPoint.Profile."><em>Profile</em></a> instance via the <a href="#D.Device:2.Device.WiFi.EndPoint.ProfileReference"><em>ProfileReference</em></a>
parameter. The active profile is responsible for specifying the actual
SSID and security settings used by the end point.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.WiFi.EndPoint.SSIDReference"><em>SSIDReference</em></a> or
<a href="#D.Device:2.Device.WiFi.EndPoint.ProfileReference"><em>ProfileReference</em></a> is not a valid reference then the table
entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.WiFi.EndPoint.Status"><em>Status</em></a> to
<a href="#D.Device:2.Device.WiFi.EndPoint.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Note: The <em>EndPoint</em> table includes a unique key parameter that is a
strong reference. If a strongly referenced object is deleted, the CPE
will set the referencing parameter to an empty string. However, doing so
under these circumstances might cause the updated <em>EndPoint</em> row to
then violate the table’s unique key constraint; if this occurs, the CPE
MUST set <a href="#D.Device:2.Device.WiFi.EndPoint.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.WiFi.EndPoint.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and
disable the offending <em>EndPoint</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.WiFi.EndPoint.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.WiFi.EndPoint.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.WiFi.EndPoint.SSIDReference"><em>SSIDReference</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Security.">Device.WiFi.EndPoint.{i}.Security.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains security related parameters that apply to a WiFi
end point [<a href="#R.802.11-2007">802.11-2007</a>].</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported">ModesSupported</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Indicates which security modes this <a href="#D.Device:2.Device.WiFi.EndPoint."><em>EndPoint</em></a> instance is
capable of supporting.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.None"><em>None</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WEP-64"><em>WEP-64</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WEP-128"><em>WEP-128</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-Enterprise"><em>WPA-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Enterprise"><em>WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Enterprise"><em>WPA3-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-WPA2-Enterprise"><em>WPA-WPA2-Enterprise</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.OWE"><em>OWE</em></span> (Added in 2.16)</li></ul>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>OWE</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.">Device.WiFi.EndPoint.{i}.Profile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>EndPoint Profile table.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.SSID"><em>SSID</em></a>, <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Location"><em>Location</em></a> and <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Priority"><em>Priority</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.">Device.WiFi.EndPoint.{i}.Profile.{i}.Security.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains security related parameters that apply to a WiFi
End Point profile [<a href="#R.802.11-2007">802.11-2007</a>].</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.WEPKey">WEPKey</span></td>
<td>hexBinary(5,13)</td>
<td>W</td>
<td><p>A WEP key expressed as a hexadecimal string.</p>

<p><em>WEPKey</em> is used only if <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.ModeEnabled"><em>ModeEnabled</em></a> is set to
<a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WEP-64"><em>WEP-64</em></a> or <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WEP-128"><em>WEP-128</em></a>.</p>

<p>A 5 byte <em>WEPKey</em> corresponds to security mode
<a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WEP-64"><em>WEP-64</em></a> and a 13 byte <em>WEPKey</em> corresponds to
security mode <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WEP-128"><em>WEP-128</em></a>.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>hexBinary(5,13)</em> syntax hidden = <em>true</em></li>
<li>Added <em>hexBinary(5,13)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey">PreSharedKey</span></td>
<td>hexBinary(:32)</td>
<td>W</td>
<td><p>A literal PreSharedKey (PSK) expressed as a hexadecimal string.</p>

<p><em>PreSharedKey</em> is only used if <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.ModeEnabled"><em>ModeEnabled</em></a> is set to
<a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></a>.</p>

<p>If <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.KeyPassphrase"><em>KeyPassphrase</em></a> is written, then <em>PreSharedKey</em> is immediately
generated. The Controller SHOULD NOT set both the
<a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.KeyPassphrase"><em>KeyPassphrase</em></a> and the <em>PreSharedKey</em> directly (the result of
doing this is undefined).</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>hexBinary(:32)</em> syntax hidden = <em>true</em></li>
<li>Added <em>hexBinary(:32)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.KeyPassphrase">KeyPassphrase</span></td>
<td>string(8:63)</td>
<td>W</td>
<td><p>A passphrase from which the <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey"><em>PreSharedKey</em></a> is to be
generated, for <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-Personal"><em>WPA-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA2-Personal"><em>WPA2-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA-WPA2-Personal"><em>WPA-WPA2-Personal</em></a> security modes.</p>

<p>If <em>KeyPassphrase</em> is written, then <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey"><em>PreSharedKey</em></a> is immediately
generated. The Controller SHOULD NOT set both the <em>KeyPassphrase</em> and the
<a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey"><em>PreSharedKey</em></a> directly (the result of doing this is
undefined). The key is generated as specified by WPA, which uses
PBKDF2 from PKCS #5: Password-based Cryptography Specification
Version 2.0 [<a href="#R.RFC2898">RFC2898</a>].</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(8:63)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(8:63)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.Profile.Security.SAEPassphrase">SAEPassphrase</span></td>
<td>string</td>
<td>W</td>
<td><p>A passphrase for <a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal"><em>WPA3-Personal</em></a> or
<a href="#D.Device:2.Device.WiFi.EndPoint.Security.ModesSupported.WPA3-Personal-Transition"><em>WPA3-Personal-Transition</em></a> security modes.</p>

<p>NOTE: this parameter is for WPA3. WPA2 <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.PreSharedKey"><em>PreSharedKey</em></a> is
generated from <a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.KeyPassphrase"><em>KeyPassphrase</em></a>.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax hidden = <em>true</em></li>
<li>Added <em>string</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.WiFi.EndPoint.WPS.">Device.WiFi.EndPoint.{i}.WPS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters related to Wi-Fi Protected Setup
[<a href="#R.WPSv1.0">WPSv1.0</a>] for this end point.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.WPS.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p><span class="removed"><strong>{{list: parameter is not a list}}</strong> </span>Indicates the current status of WPS in EndPoint.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.EndPoint.WPS.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.WPS.Status.Error"><em>Error</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.WPS.Status.Unconfigured"><em>Unconfigured</em></span></li>
<li><span id="D.Device:2.Device.WiFi.EndPoint.WPS.Status.Configured"><em>Configured</em></span></li></ul></td>
<td>-</td>
<td>2.11</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.WiFi.EndPoint.WPS.PIN">PIN</span></td>
<td>string(:8)</td>
<td>W</td>
<td><p>Represents the Device PIN used for PIN based pairing between WPS peers. This PIN is either a four digit number or an eight digit number.</p>

<p><span class="removed">When read, this parameter returns an empty string, regardless of the actual value.</span><span class="inserted">Changed in 2.16: The data type was fixed (it was previously defined as an integer that had to have the value 4 or 8).</span></p>

<p>Possible patterns:</p>

<ul>
<li><span id="D.Device:2.Device.WiFi.EndPoint.WPS.PIN.d4d8"><code>\d{4}|\d{8}</code></span> (Added in 2.16)</li></ul>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>unsignedInt(4,8)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:8)</em> syntax secured = <em>true</em></li>
<li>Changed syntax = <em>unsignedInt(4,8)</em> -&gt; <em>string(:8)</em></li></ul></div></td>
<td>-</td>
<td>2.11</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ZigBee.">Device.ZigBee.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Top level object for ZigBee capabilities based on the
[<a href="#R.ZigBee2007">ZigBee2007</a>] specification.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ZigBee.Interface.">Device.ZigBee.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>ZigBee interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). This table models the ZigBee
interface of a ZigBee end device, ZigBee router or ZigBee coordinator.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.ZigBee.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.ZigBee.Interface.Name"><em>Name</em></a>, or with a given value for <a href="#D.Device:2.Device.ZigBee.Interface.ZDOReference"><em>ZDOReference</em></a>.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ZigBee.Interface.IEEEAddress">IEEEAddress</span></td>
<td><span title="IEEE_EUI64">string(:23)</span></td>
<td>R</td>
<td><p>[<a href="#T.IEEE_EUI64">IEEE_EUI64</a>] The IEEE address assigned to this interface. A value of &ldquo;FF:FF:FF:FF:FF:FF:FF:FF&rdquo; indicates that this address is unknown. This parameter has the same value as the <strong>{{param: non-existent <span class="inserted">#.ZDO.{i}.IEEEAddress</span>}}</strong> parameter of the ZDO instance <a href="#D.Device:2.Device.ZigBee.Interface.ZDOReference"><em>ZDOReference</em></a> is pointing to.</p>

<p>Active Notification MUST by default be enabled for this parameter.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ZigBee.Interface.NetworkAddress">NetworkAddress</span></td>
<td><span title="ZigBeeNetworkAddress">string(:4)</span></td>
<td>R</td>
<td>[<a href="#T.ZigBeeNetworkAddress">ZigBeeNetworkAddress</a>] The ZigBee network address assigned to this interface. This parameter has the same value as the <strong>{{param: non-existent <span class="inserted">#.ZDO.{i}.NetworkAddress</span>}}</strong> parameter of the ZDO instance <a href="#D.Device:2.Device.ZigBee.Interface.ZDOReference"><em>ZDOReference</em></a> is pointing to.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Bridging.">Device.Bridging.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Layer 2 bridging configuration. Specifies bridges between different
layer 2 interfaces. Bridges can be defined to include layer 2 filter
criteria to selectively bridge traffic between interfaces.</p>

<p>This object can be used to configure both 802.1D [<a href="#R.802.1D-2004">802.1D-2004</a>]
and 802.1Q [<a href="#R.802.1Q-2011">802.1Q-2011</a>] bridges.</p>

<p>Not all 802.1D and 802.1Q features are modeled, and some additional
features not present in either 802.1D or 802.1Q are modeled.</p>

<p>802.1Q [<a href="#R.802.1Q-2011">802.1Q-2011</a>] bridges incorporate 802.1Q
[<a href="#R.802.1Q-2005">802.1Q-2005</a>] customer and 802.1ad [<a href="#R.802.1ad-2005">802.1ad-2005</a>]
provider bridges.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.MaxBridgeEntries">MaxBridgeEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The maximum number of entries available in the <strong>{{object: non-existent <span class="inserted">Bridge</span>}}</strong> table.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.MaxDBridgeEntries">MaxDBridgeEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The maximum number of 802.1D [<a href="#R.802.1D-2004">802.1D-2004</a>] entries available in the <strong>{{object: non-existent <span class="inserted">Bridge</span>}}</strong> table. A positive value for this parameter implies support for 802.1D.</p>

<p>There is no guarantee that this many 802.1D Bridges can be configured. For example, the CPE might not be able simultaneously to support both 802.1D and 802.1Q Bridges.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.MaxQBridgeEntries">MaxQBridgeEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The maximum number of 802.1Q [<a href="#R.802.1Q-2011">802.1Q-2011</a>] entries available in the <strong>{{object: non-existent <span class="inserted">Bridge</span>}}</strong> table. A non-zero value for this parameter implies support for 802.1Q.</p>

<p>There is no guarantee that this many 802.1Q Bridges can be configured. For example, the CPE might not be able simultaneously to support both 802.1D and 802.1Q Bridges.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.MaxVLANEntries">MaxVLANEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The maximum number of 802.1Q [<a href="#R.802.1Q-2011">802.1Q-2011</a>] VLANs supported per <strong>{{object: non-existent <span class="inserted">Bridge</span>}}</strong> table entry.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.MaxProviderBridgeEntries">MaxProviderBridgeEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The maximum number of entries available in the <strong>{{object: non-existent <span class="inserted">ProviderBridge</span>}}</strong> table. A non-zero value for this parameter implies support for 802.1Q Provider Bridges.</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Bridging.Bridge.">Device.Bridging.Bridge.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Bridge table.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Bridging.Bridge.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Bridging.Bridge.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Bridging.Bridge.Name"><em>Name</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Bridging.Bridge.AgingTime"><em>AgingTime</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Bridging.Bridge.STP."><em>STP.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.Name">Name</span></td>
<td>string(:64)</td>
<td>R</td>
<td>The textual name of the bridge as assigned by the device.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.AgingTime">AgingTime</span></td>
<td>unsignedInt(10:1000000)</td>
<td>W</td>
<td><p>The timeout period in <em>seconds</em> for aging out dynamically-learned
forwarding information as described in [<a href="#R.802.1Q-2011">Section
7.9.2/802.1Q-2011</a>].</p>

<p>The Dynamic Filtering Entries are not modeled. They are part of the
bridge’s internal Forwarding Database.</p></td>
<td>300</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.STP.">Device.Bridging.Bridge.{i}.STP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>STP (Spanning Tree Algorithm and Protocol) / RSTP (Rapid Spanning Tree
Algorithm and Protocol) bridge configuration as defined in
[<a href="#R.802.1D-2004">802.1D-2004</a>] and [<a href="#R.802.1Q-2011">802.1Q-2011</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.STP.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables STP on this bridge</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.STP.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of the STP for this Bridge.</p>

<p>The <a href="#D.Device:2.Device.Bridging.Bridge.STP.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> value indicates that a necessary
configuration value is undefined or invalid.</p>

<p>The <a href="#D.Device:2.Device.Bridging.Bridge.STP.Status.Error"><em>Error</em></a> value MAY be used by the CPE to indicate a locally
defined error condition.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Bridging.Bridge.STP.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.Bridging.Bridge.STP.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.Device:2.Device.Bridging.Bridge.STP.Status.Error_Misconfigured"><em>Error_Misconfigured</em></span></li>
<li><span id="D.Device:2.Device.Bridging.Bridge.STP.Status.Error"><em>Error</em></span> (OPTIONAL)</li></ul></td>
<td>Disabled</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.STP.Protocol">Protocol</span></td>
<td>string</td>
<td>W</td>
<td><p>Protocol to use.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Bridging.Bridge.STP.Protocol.STP"><em>STP</em></span></li>
<li><span id="D.Device:2.Device.Bridging.Bridge.STP.Protocol.RSTP"><em>RSTP</em></span></li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.STP.BridgePriority">BridgePriority</span></td>
<td>unsignedInt(0:57345:4096)</td>
<td>W</td>
<td>Value of the priority part of the Bridge Identifier as described in
[<a href="#R.802.1D-2004">Section 17.18.3 Bridge priority/802.1D-2004</a>].</td>
<td>32768</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.STP.HelloTime">HelloTime</span></td>
<td>unsignedInt(100:1000)</td>
<td>W</td>
<td>The interval in <em>centiseconds</em> between periodic transmissions of
Configuration Messages by Designated Ports as described in
[<a href="#R.802.1D-2004">Section 17.13.6/802.1D-2004</a>].</td>
<td>200</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.STP.MaxAge">MaxAge</span></td>
<td>unsignedInt(600:4000)</td>
<td>W</td>
<td>The maximum age in <em>centiseconds</em> of the information transmitted by the
Bridge when it is the Root Bridge as described in
[<a href="#R.802.1D-2004">Section 17.13.8/802.1D-2004</a>].</td>
<td>2000</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.STP.ForwardingDelay">ForwardingDelay</span></td>
<td>unsignedInt(4:30)</td>
<td>W</td>
<td>The minimum delay in <em>seconds</em> a port should be listening before
entering Forwarding PortState as defined in
[<a href="#R.802.1D-2004">Section 17.29.2/802.1D-2004</a>].</td>
<td>15</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Bridging.Bridge.Port.">Device.Bridging.Bridge.{i}.Port.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Bridge Port table, which MUST contain an entry for each bridge port (a
stackable interface object as described in [<a href="#R.TR-181i2">Section
4.2/TR-181i2</a>]).</p>

<p>There are two types of bridge ports: management (upward facing) and
non-management (downward facing). This is determined by configuring the
Boolean <a href="#D.Device:2.Device.Bridging.Bridge.Port.ManagementPort"><em>ManagementPort</em></a> parameter. The CPE will automatically
configure each management bridge port to appear in the interface stack
above all non-management bridge ports that share the same
<a href="#D.Device:2.Device.Bridging.Bridge."><em>Bridge</em></a> instance.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Bridging.Bridge.Port.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Bridging.Bridge.Port.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.Bridging.Bridge.Port.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.Bridging.Bridge.Port.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Bridging.Bridge.Port.PathCost"><em>PathCost</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Bridging.Bridge.Port.Priority"><em>Priority</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.Bridge.Port.PriorityTagging">PriorityTagging</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enables or disables priority tagging on this Bridge Port.</p>

<p>When <em>true</em>, egress frames leaving this interface will be priority tagged with the frame’s associated priority value, which will either be derived directly from the ingress frame or else set via <strong>{{param: non-existent <span class="inserted">###.QoS.Classification.{i}.EthernetPriorityMark</span>}}</strong>.</p>

<p>When <em>false</em>, egress frames leaving this interface will be untagged.</p>

<p>The parameter does not affect reception of ingress frames.</p>

<p>Only applies on bridge ports that are untagged member of one or more VLAN’s.</p></td>
<td>false</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.Port.PathCost">PathCost</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><p>The Port’s contribution, when it is the Root Port, to the Root Path
Cost for the Bridge as described in [<a href="#R.802.1D-2004">Section
17.13.11/802.1D-2004</a>].</p>

<p>This parameter apply only when
<a href="#D.Device:2.Device.Bridging.Bridge.STP.Enable"><em>Bridging.Bridge.{i}.STP.Enable</em></a> is <em>true</em>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Bridging.Bridge.Port.Priority">Priority</span></td>
<td>unsignedInt(0:225:16)</td>
<td>W</td>
<td><p>The first four components of the Port’s port priority vector value as
described in [<a href="#R.802.1D-2004">Section 17.19.21/802.1D-2004</a>].</p>

<p>This parameter apply only when
<a href="#D.Device:2.Device.Bridging.Bridge.STP.Enable"><em>Bridging.Bridge.{i}.STP.Enable</em></a> is <em>true</em>.</p></td>
<td>128</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Bridging.Filter.">Device.Bridging.Filter.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Filter table containing classification filter entries, each of which
expresses a set of classification criterion to classify ingress frames
as member of a <a href="#D.Device:2.Device.Bridging.Bridge."><em>Bridge</em></a> instance or a
<a href="#D.Device:2.Device.Bridging.Bridge.VLAN."><em>Bridge.{i}.VLAN</em></a> instance.</p>

<p>Bridge VLAN classification only applies for 802.1Q
[<a href="#R.802.1Q-2011">802.1Q-2011</a>] Bridges.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.Bridging.Filter.Bridge"><em>Bridge</em></a> or <a href="#D.Device:2.Device.Bridging.Filter.Interface"><em>Interface</em></a>
is an empty string then the table entry is inoperable and the CPE MUST set
<a href="#D.Device:2.Device.Bridging.Filter.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Bridging.Filter.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Several of this object’s parameters specify DHCP option values. Some
cases are version neutral (the parameter can apply to both DHCPv4 and
DHCPv6), but in other cases the representation of the option is
different for DHCPv4 and DHCPv6, so it is necessary to define separate
DHCPv4-specific and DHCPv6-specific parameters. Therefore, an instance
of this object that uses DHCP option values as filter criteria will be
associated with either DHCPv4 or DHCPv6, as indicated by the
<a href="#D.Device:2.Device.Bridging.Filter.DHCPType"><em>DHCPType</em></a> parameter.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Bridging.Filter.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Bridging.Filter.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Bridging.Filter.Bridge">Bridge</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a <strong>{{object: non-existent <span class="inserted">#.Bridge</span>}}</strong> object in case of a 802.1D bridge or a <strong>{{object: non-existent <span class="inserted">#.Bridge.{i}.VLAN</span>}}</strong> object in case of a 802.1Q bridge. If the referenced object is deleted, the parameter value MUST be set to an empty string. Note: either way, this identifies the bridge (because each bridge has a VLAN table).</p>

<p>Defines the Bridge or Bridge VLAN to which ingress frames will be classified based upon matches of the classification criteria.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PPP.">Device.PPP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Point-to-Point Protocol [<a href="#R.RFC1661">RFC1661</a>]. This object contains the
<a href="#D.Device:2.Device.PPP.Interface."><em>Interface</em></a> table.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PPP.Interface.">Device.PPP.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>PPP interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]).</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PPP.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.PPP.Interface.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.PPP.Interface.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.PPP.Interface.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.PPP.Interface.LCPEchoAdaptive"><em>LCPEchoAdaptive</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PPP.Interface.Password">Password</span></td>
<td>string(:64)</td>
<td>W</td>
<td><p>Password to be used for authentication.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:64)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:64)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PPP.Interface.LCPEcho">LCPEcho</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><span class="inserted">A </span>PPP LCP Echo <span class="removed">period</span><span class="inserted">Request</span> <span class="removed">in</span><span class="inserted">is sent every <em>LCPEcho</em></span> <em>seconds</em>.<span class="inserted"> A value 0 means that no LCP Echo Requests are sent. [<a href="#R.RFC1661">Section 5.8 Echo-Request and Echo-Reply/RFC1661</a>] describes the relevant LCP Echo frames.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed access = <em>readOnly</em> ⇒ <em>readWrite</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PPP.Interface.LCPEchoRetry">LCPEchoRetry</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><span class="removed">Number</span><span class="inserted">Applicable only when <a href="#D.Device:2.Device.PPP.Interface.LCPEcho"><em>LCPEcho</em></a> is greater than 0. When number</span> of <span class="removed">PPP</span><span class="inserted">consecutive <em>LCPEchoRetry</em></span> LCP Echo <span class="removed">retries</span><span class="inserted">Replies</span> <span class="removed">within</span><span class="inserted">have</span> <span class="removed">an</span><span class="inserted">been</span> <span class="removed">echo</span><span class="inserted">missed.</span> <span class="removed">period.</span><span class="inserted">The remote peer will be assumed dead and the connection will be terminated.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed access = <em>readOnly</em> ⇒ <em>readWrite</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PPP.Interface.LCPEchoAdaptive">LCPEchoAdaptive</span></td>
<td>boolean</td>
<td>W</td>
<td>When traffic is received during the <a href="#D.Device:2.Device.PPP.Interface.LCPEcho"><em>LCPEcho</em></a> interval, no
LCP Echo-Request is sent until the next <a href="#D.Device:2.Device.PPP.Interface.LCPEcho"><em>LCPEcho</em></a> interval.</td>
<td>true</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.">Device.IP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>IP object that contains the <a href="#D.Device:2.Device.IP.Interface."><em>Interface</em></a>,
<a href="#D.Device:2.Device.IP.ActivePort."><em>ActivePort</em></a>, and <a href="#D.Device:2.Device.IP.Diagnostics."><em>Diagnostics</em></a> objects.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Interface.">Device.IP.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>IP interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). This table models the layer 3 IP
interface.</p>

<p>Each IP interface can be attached to the IPv4 and/or IPv6 stack. The
interface’s IP addresses and prefixes are listed in the
<a href="#D.Device:2.Device.IP.Interface.IPv4Address."><em>IPv4Address</em></a>, <a href="#D.Device:2.Device.IP.Interface.IPv6Address."><em>IPv6Address</em></a> and
<a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IPv6Prefix</em></a> tables.</p>

<p>Note that support for manipulating <a href="#D.Device:2.Device.IP.Interface.Loopback"><em>Loopback</em></a> interfaces is
OPTIONAL, so the implementation MAY choose not to create (or allow the
Controller to create) <em>Interface</em> instances of type
<a href="#D.Device:2.Device.IP.Interface.Type.Loopback"><em>Loopback</em></a>.</p>

<p>When the Controller administratively disables the interface, i.e. sets
<a href="#D.Device:2.Device.IP.Interface.Enable"><em>Enable</em></a> to <em>false</em>, the interface’s automatically-assigned
IP addresses and prefixes MAY be retained. When the Controller
administratively enables the interface, i.e. sets <a href="#D.Device:2.Device.IP.Interface.Enable"><em>Enable</em></a> to
<em>true</em>, these IP addresses and prefixes MUST be refreshed. It’s up to
the implementation to decide exactly what this means: it SHOULD take
all reasonable steps to refresh everything but if it is unable, for
example, to refresh a prefix that still has a significant lifetime, it
might well choose to retain rather than discard it.</p>

<p>Any <a href="#D.Device:2.Device.IP.Interface.Type.Tunneled"><em>Tunneled</em></a> IP interface instances instantiated by the
CPE MUST NOT have any statistics, writable parameters, IP addresses or
IPv6 prefixes. Any read-only parameters, e.g. <a href="#D.Device:2.Device.IP.Interface.Status"><em>Status</em></a>, MUST
return the same information as for the corresponding
<a href="#D.Device:2.Device.IP.Interface.Type.Tunnel"><em>Tunnel</em></a> interface. The reason for these rules is that
<a href="#D.Device:2.Device.IP.Interface.Type.Tunneled"><em>Tunneled</em></a> IP interfaces exist only in order to be the
targets of references (within the data model) and do not model any
concepts over and above those already modeled by the
<a href="#D.Device:2.Device.IP.Interface.Type.Tunnel"><em>Tunnel</em></a> IP interfaces.</p>

<p>Note that <a href="#D.Device:2.Device.IP.Interface.Type.Tunnel"><em>Tunnel</em></a> and <a href="#D.Device:2.Device.IP.Interface.Type.Tunneled"><em>Tunneled</em></a> IP interfaces
are part of a legacy mechanism that is only used for
<a href="#D.Device:2.Device.IPv6rd."><em>IPv6rd</em></a>, <a href="#D.Device:2.Device.DSLite."><em>DSLite</em></a> and <a href="#D.Device:2.Device.IPsec."><em>IPsec</em></a>
tunnels and MUST NOT be used in any other context. For all other
tunneling mechanisms <a href="#D.Device:2.Device.IP.Interface.Type.Normal"><em>Normal</em></a> IP interfaces are stacked
above technology-specific Tunnel Interfaces, e.g. above
<a href="#D.Device:2.Device.GRE.Tunnel.Interface."><em>GRE.Tunnel.{i}.Interface</em></a> or
<a href="#D.Device:2.Device.MAP.Domain.Interface."><em>MAP.Domain.{i}.Interface</em></a> objects.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.IP.Interface.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.IP.Interface.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.IP.Interface.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Interface.IPv6Prefix.">Device.IP.Interface.{i}.IPv6Prefix.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table contains the interface’s IPv6 prefixes. There MUST be an entry for each such prefix, not only for prefixes learned from router advertisements.</p>

<p>There are several ways in which entries can be added to and deleted from this table, including:</p>

<ul>
<li>Automatically via [<a href="#R.RFC4861">RFC4861</a>] Router Advertisements. See also <strong>{{object: non-existent <span class="inserted">###.RouterAdvertisement</span>}}</strong>.</li>
<li>Automatically via DHCPv6 [<a href="#R.RFC3315">RFC3315</a>] prefix delegation [<a href="#R.RFC3633">RFC3633</a>]. See also <strong>{{object: non-existent <span class="inserted">###.DHCPv6.Client</span>}}</strong>.</li>
<li>Automatically via internal CPE logic, e.g. creation of child prefixes derived from a parent prefix.</li>
<li>Manually via a GUI or some other local management interface.</li>
<li>Manually via factory default configuration.</li>
<li>By the Controller.</li></ul>

<p>The CPE MAY choose not to create <em>IPv6Prefix</em> entries for <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Origin.WellKnown"><em>WellKnown</em></a> prefixes or for the ULA /48 prefix [<a href="#R.RFC4193">RFC4193</a>]. If an <em>IPv6Prefix</em> entry exists for the ULA /48 prefix, it MUST be on a downstream interface (i.e. an interface for which the physical layer interface object has <em>Upstream</em> = <em>false</em>).</p>

<p>This object is based on <em>ipAddressPrefixTable</em> from [<a href="#R.RFC4293">RFC4293</a>].</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.Prefix"><em>Prefix</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.">Device.IP.Diagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The IP Diagnostics object.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPPing.">Device.IP.Diagnostics.IPPing.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides access to an IP-layer ping test.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPPing.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a table row. The layer 2 or layer 3 interface over which the test is to be performed. Example: <em>Device.IP.Interface.1</em>, <em>Device.Bridge.1.Port.2</em></p>

<p><span class="removed">If an empty string is specified, the CPE MUST use the interface as directed by its bridging or routing policy (<em>Forwarding</em> table entries) to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.TraceRoute.">Device.IP.Diagnostics.TraceRoute.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines access to an IP-layer trace-route test for the
specified IP interface.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.TraceRoute.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a table row. The layer 2 or layer 3 interface over which the test is to be performed. Example: <em>Device.IP.Interface.1</em>, <em>Device.Bridge.1.Port.2</em></p>

<p><span class="removed">If an empty string is specified, the CPE MUST use the interface as directed by its bridging or routing policy (<em>Forwarding</em> table entries) to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.">Device.IP.Diagnostics.DownloadDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object defines the diagnostics configuration for a HTTP and FTP
DownloadDiagnostics Test.</p>

<p>Files received in the DownloadDiagnostics do not require file storage
on the CPE device.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_TransferFailed"><em>Error_TransferFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_IncorrectSize"><em>Error_IncorrectSize</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_TransferFailed"><em>Error_TransferFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_IncorrectSize"><em>Error_IncorrectSize</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a table row. The IP-layer interface over which the test is to be performed. Example: Device.IP.Interface.1</p>

<p><span class="removed">If an empty string is specified, the CPE MUST use the interface as directed by its routing policy (<em>Forwarding</em> table entries) to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceived">TestBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The number of <em>bytes</em> received during the FTP/HTTP transaction
including FTP/HTTP headers, between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.BOMTime"><em>BOMTime</em></a> and
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.EOMTime"><em>EOMTime</em></a> across all connections.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceived">TotalBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) received on the
Interface between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.BOMTime"><em>BOMTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.EOMTime"><em>EOMTime</em></a>. This MAY be
calculated by sampling Stats.BytesReceived on the <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a>
object at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.BOMTime"><em>BOMTime</em></a> and at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.EOMTime"><em>EOMTime</em></a> and subtracting.
If <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter cannot be
determined and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSent">TotalBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) sent on the Interface
between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.BOMTime"><em>BOMTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.EOMTime"><em>EOMTime</em></a>. This MAY be calculated
by sampling Stats.BytesSent on the <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> object at
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.BOMTime"><em>BOMTime</em></a> and at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.EOMTime"><em>EOMTime</em></a> and subtracting. If
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter cannot be determined
and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceivedUnderFullLoading">TestBytesReceivedUnderFullLoading</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The number of <em>bytes</em> of the test file received between the latest
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a> across all connections.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesReceivedUnderFullLoading">TotalBytesReceivedUnderFullLoading</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) received in between the
latest <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a>. This MAY be calculated by
sampling Stats.BytesReceived on the <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> object at the
latest <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and at the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a> and subtracting.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TotalBytesSentUnderFullLoading">TotalBytesSentUnderFullLoading</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) sent between the latest
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a>. This MAY be calculated by
sampling Stats.BytesSent on the <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> object at the
latest <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and at the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a> and subtracting.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.">Device.IP.Diagnostics.UploadDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object defines the diagnostics configuration for a HTTP or FTP
UploadDiagnostics test.</p>

<p>Files sent by the UploadDiagnostics do not require file storage on the
CPE device, and MAY be an arbitrary stream of bytes.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoCWD"><em>Error_NoCWD</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoSTOR"><em>Error_NoSTOR</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferComplete"><em>Error_NoTransferComplete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoRouteToHost"><em>Error_NoRouteToHost</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_InitConnectionFailed"><em>Error_InitConnectionFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoResponse"><em>Error_NoResponse</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_PasswordRequestFailed"><em>Error_PasswordRequestFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_LoginFailed"><em>Error_LoginFailed</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferMode"><em>Error_NoTransferMode</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoPASV"><em>Error_NoPASV</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoCWD"><em>Error_NoCWD</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoSTOR"><em>Error_NoSTOR</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_NoTransferComplete"><em>Error_NoTransferComplete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Timeout"><em>Error_Timeout</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a table row. The IP-layer interface over which the test is to be performed. Example: Device.IP.Interface.1</p>

<p><span class="removed">If an empty string is specified, the CPE MUST use the interface as directed by its routing policy (<em>Forwarding</em> table entries) to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TestFileLength">TestFileLength</span></td>
<td>unsignedLong</td>
<td>W</td>
<td><p>The size of the file <span class="removed">(in bytes)</span><span class="inserted"><em>bytes</em></span> to be uploaded to the server.</p>

<p>The CPE MUST insure the appropriate number of bytes are sent.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>unsignedLong</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TestBytesSent">TestBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The number of <em>bytes</em> of the test file sent during the FTP/HTTP
transaction including FTP/HTTP headers, between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.BOMTime"><em>BOMTime</em></a> and
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.EOMTime"><em>EOMTime</em></a> acrosss all connections.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceived">TotalBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) received on the
Interface between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.BOMTime"><em>BOMTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.EOMTime"><em>EOMTime</em></a>. This MAY be
calculated by sampling Stats.BytesReceived on the <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a>
object at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.BOMTime"><em>BOMTime</em></a> and at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.EOMTime"><em>EOMTime</em></a> and subtracting.
If <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter cannot be
determined and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSent">TotalBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) sent on the Interface
between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.BOMTime"><em>BOMTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.EOMTime"><em>EOMTime</em></a>. This MAY be calculated
by sampling Stats.BytesSent on the <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> object at
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.BOMTime"><em>BOMTime</em></a> and at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.EOMTime"><em>EOMTime</em></a> and subtracting. If
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter cannot be determined
and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TestBytesSentUnderFullLoading">TestBytesSentUnderFullLoading</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The number of <em>bytes</em> of the test file sent between the latest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a> across all connections.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TotalBytesReceivedUnderFullLoading">TotalBytesReceivedUnderFullLoading</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) received between the
latest <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a> across all connections in the
test. This MAY be calculated by sampling Stats.BytesReceived on the
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> object at the latest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and at the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a> and subtracting. If
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter cannot be determined
and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TotalBytesSentUnderFullLoading">TotalBytesSentUnderFullLoading</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) sent between the latest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a> across all connections in the
test. This MAY be calculated by sampling Stats.BytesSent on the
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> object at the latest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>PerConnectionResult.{i}.BOMTime</em></a> and at the earliest
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>PerConnectionResult.{i}.EOMTime</em></a> and subtracting. If
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter cannot be determined
and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.">Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>Results for individual connections. This table is only populated when
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.EnablePerConnectionResults"><em>EnablePerConnectionResults</em></a> is <em>true</em>. A new object is
created for each connection specified in
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.NumberOfConnections"><em>NumberOfConnections</em></a>. Instance numbers MUST start at 1 and
sequentially increment as new instances are created. All instances are
removed when <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState"><em>DiagnosticsState</em></a> is set to
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> or
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.TestBytesSent">TestBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The number of <em>bytes</em> of the test file sent during the FTP/HTTP
transaction including FTP/HTTP headers, between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a>.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.TotalBytesReceived">TotalBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) received on the
Interface between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a>. This MAY
be calculated by sampling Stats.BytesReceived on the
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> object at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and at
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a> and subtracting. If <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> is
an empty string, this parameter cannot be determined and SHOULD be 0.</p>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.TotalBytesSent">TotalBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) sent on the Interface
between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a>. This MAY be
calculated by sampling Stats.BytesSent on the <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a>
object at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a> and subtracting.
If <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter cannot be
determined and SHOULD be 0.</p>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.">Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>Results for time segmented tests (tests where
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestDuration"><em>TimeBasedTestDuration</em></a> &gt; 0 and
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementInterval"><em>TimeBasedTestMeasurementInterval</em></a> &gt; 0). This data is
totaled across all connections in the test. A new object is created
every <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TimeBasedTestMeasurementInterval"><em>TimeBasedTestMeasurementInterval</em></a> after that interval
has completed. Instance numbers MUST start at 1 and sequentially
increment as new instances are created. All instances are removed when
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState"><em>DiagnosticsState</em></a> is set to
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> or
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.TestBytesSent">TestBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] Change in the value of <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.TestBytesSent"><em>TestBytesSent</em></a> between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a><span class="inserted">, measured in <em>bytes</em></span>.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.TotalBytesReceived">TotalBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) received on the
Interface between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a>. This MAY
be calculated by sampling Stats.BytesReceived on the
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> object at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and at
<a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a> and subtracting. If <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> is
an empty string, this parameter cannot be determined and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.TotalBytesSent">TotalBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) sent on the Interface
between <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a>. This MAY be
calculated by sampling Stats.BytesSent on the <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a>
object at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and at <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a> and
subtracting. If <a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter
cannot be determined and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.">Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>Results for individual connections. This table is only populated when
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.EnablePerConnectionResults"><em>EnablePerConnectionResults</em></a> is <em>true</em>. A new object is
created for each connection specified in
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.NumberOfConnections"><em>NumberOfConnections</em></a>. Instance numbers MUST start at 1 and
sequentially increment as new instances are created. All instances are
removed when <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState"><em>DiagnosticsState</em></a> is set to
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> or
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.TestBytesReceived">TestBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The number of <em>bytes</em> of the test file received during the FTP/HTTP
transaction including FTP/HTTP headers, between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.TotalBytesReceived">TotalBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) received on the
Interface between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a>. This MAY
be calculated by sampling Stats.BytesReceived on the
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> object at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and at
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a> and subtracting.</p>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.TotalBytesSent">TotalBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) sent on the Interface
between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a>. This MAY be
calculated by sampling Stats.BytesSent on the <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a>
object at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.BOMTime"><em>BOMTime</em></a> and at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.EOMTime"><em>EOMTime</em></a> and subtracting.</p>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.">Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>Results for time segmented tests (tests where
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestDuration"><em>TimeBasedTestDuration</em></a> &gt; 0 and
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementInterval"><em>TimeBasedTestMeasurementInterval</em></a> &gt; 0). This data is
totaled across all connections in the test. A new object is created
every <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TimeBasedTestMeasurementInterval"><em>TimeBasedTestMeasurementInterval</em></a> after that interval
has completed. Instance numbers MUST start at 1 and sequentially
increment as new instances are created. All instances are removed when
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState"><em>DiagnosticsState</em></a> is set to
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> or
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.DiagnosticsState.None"><em>None</em></a>.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.TestBytesReceived">TestBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Change in the value of <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.TestBytesReceivedUnderFullLoading"><em>TestBytesReceivedUnderFullLoading</em></a> between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a><span class="inserted">, measured in <em>bytes</em></span>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.TotalBytesReceived">TotalBytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) received on the
Interface between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a>. This MAY
be calculated by sampling Stats.BytesReceived on the
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> object at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and at
<a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a> and subtracting. If <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> is
an empty string, this parameter cannot be determined and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.TotalBytesSent">TotalBytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of <em>bytes</em> (at the IP layer) sent on the Interface
between <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a>. This MAY be
calculated by sampling Stats.BytesSent on the <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a>
object at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.StartTime"><em>StartTime</em></a> and at <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.EndTime"><em>EndTime</em></a> and
subtracting. If <a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.Interface"><em>Interface</em></a> is an empty string, this parameter
cannot be determined and SHOULD be 0.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>unsignedInt</em> -&gt; <em>StatsCounter64</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.TraceRoute.RouteHops.">Device.IP.Diagnostics.TraceRoute.RouteHops.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>Contains the array of hop results returned. If a route could not be
determined, this array will be empty</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.TraceRoute.RouteHops.RTTimes">RTTimes</span></td>
<td>unsignedInt[1:3]</td>
<td>R</td>
<td><p>Comma-separated list (1 to 3 items) of unsigned integers. Each list item contains one or more round trip times in
<em>milliseconds</em> (one for each repetition) for this hop.</p>

<p>A list item of 0 indicates that the corresponding response was not
received. Round trip times of less than 1 <em>milliseconds</em> MUST be rounded
up to 1.</p>

<p>The number of list entries is determined by the value of
<a href="#D.Device:2.Device.IP.Diagnostics.TraceRoute.NumberOfTries"><em>NumberOfTries</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em><a href=":16">1:3</a></em> list <em>:16</em> size</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.">Device.IP.Diagnostics.UDPEchoDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the diagnostics configuration for a UDP Echo test
[<a href="#R.TR-143">Appendix A.1/TR-143</a>] defined in [<a href="#R.RFC862">RFC862</a>] or a UDP
Echo Plus test defined in [<a href="#R.TR-143">Appendix A.1/TR-143</a>].</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. <span class="removed">The value MUST be the Path Name of the</span><span class="inserted">The</span> IP-layer interface over which the test is to be <span class="removed">performed. If the referenced object is deleted, the parameter value MUST be set to an empty string.</span><span class="inserted">performed.</span> Example: Device.IP.Interface.1</p>

<p><span class="removed">If an empty string is specified, the CPE MUST use the interface as directed by its routing policy (<em>Forwarding</em> table entries) to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.Port">Port</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td><p>Port on the host to perform tests to.</p>

<p>The factory default value MUST be <em>7</em>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>unsignedInt(1:65535)</em> syntax <em>7</em> default</li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.">Device.IP.Diagnostics.IPLayerCapacityMetrics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object defines the diagnostics configuration for a IP Layer
Capacity test. IP Layer Capacity measurement is specified in
[<a href="#R.TR-471">TR-471</a>].</p>

<p>Files received in the IP Layer Capacity test do not require file
storage on the CPE device.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.StartSendingRateIndex"><em>StartSendingRateIndex</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.RetryThresh"><em>RetryThresh</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.RateAdjAlgorithm"><em>RateAdjAlgorithm</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a table row. The IP-layer interface over which the test is to be performed. Example: Device.IP.Interface.1</p>

<p><span class="removed">If an empty string is specified, the device MUST use the interface as directed by its routing policy (<em>Forwarding</em> table entries) to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div></td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.NumberOfConnections">NumberOfConnections</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>The number of connections to be used in the test. The default value SHOULD be 1. <em>NumberOfConnections</em> MUST NOT be set to a value greater than <strong>{{param: non-existent <span class="inserted">IPLayerMaxConnections</span>}}</strong>.</td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.StartSendingRate">StartSendingRate</span></td>
<td>unsignedInt(500:40000000)</td>
<td>W</td>
<td>The Sending Rate for a <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.TestType.Fixed"><em>Fixed</em></a> test or the initial
Sending Rate value for a <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.TestType.Search"><em>Search</em></a> test. Value specified
in <em>kbps</em>. The default value SHOULD be 500 <em>kbps</em>.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed <em>500:40000000</em> range maxInclusive = <em>10000000</em> ⇒ <em>40000000</em></li></ul></div></td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.StartSendingRateIndex">StartSendingRateIndex</span></td>
<td>unsignedInt(0:11108)</td>
<td>W</td>
<td>The configurable initial Sending Rate index (to a row of the sending
rate table) for a <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.TestType.Fixed"><em>Fixed</em></a> or <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.TestType.Search"><em>Search</em></a>
test. <em>StartSendingRateIndex</em> overrides <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.StartSendingRate"><em>StartSendingRate</em></a> if both parameters
are present. See Annex A of [<a href="#R.TR-471">TR-471</a>] for details. The default
value SHOULD be 0.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.NumberTestSubIntervals">NumberTestSubIntervals</span></td>
<td>unsignedInt(1:100)</td>
<td>W</td>
<td>Number of intermediate measurement reporting intervals. The value MUST NOT be greater than <strong>{{param: non-existent <span class="inserted">IPLayerMaxIncrementalResult</span>}}</strong>. The default value SHOULD be 10.</td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.TimestampResolution">TimestampResolution</span></td>
<td>unsignedInt(1:1000)</td>
<td>W</td>
<td>Indicates the requested precision of timestamp values. The test implementation will determine the actual precision to use based on the implemented resolution capabilities of the protocols used and this requested value. If the implemented resolution capabilities of the <strong>{{param: non-existent <span class="inserted">IPLayerCapSupportedMetrics</span>}}</strong> protocols being used are able to provide the requested resolution, this resolution SHOULD be provided. Value specified in <em>microseconds</em>. The default value SHOULD be 1 <em>microseconds</em>.</td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.ReordDupIgnoreEnable">ReordDupIgnoreEnable</span></td>
<td>boolean</td>
<td>W</td>
<td>This parameter is only meaningful if <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.TestType"><em>TestType</em></a> is <a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.TestType.Search"><em>Search</em></a>. When <em>true</em> (enabled) only Loss counts toward received packet sequence number errors, and <span class="removed">reordering</span><span class="inserted">Reordering</span> and Duplication impairments are ignored. When <em>false</em> (disabled), Loss, Reordering and Duplication are all counted as sequence number errors. The default value SHOULD be <span class="removed"><em>false</em></span><span class="inserted"><em>true</em></span> <span class="removed">(disabled).</span><span class="inserted">(enabled).</span></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.RetryThresh">RetryThresh</span></td>
<td>unsignedInt(1:3000)</td>
<td>W</td>
<td>The initial number of retries before activating “fast” sending rate
increase mode. Different paths through the flow chart increase the
sending rate, either fast or slow, or decrease the rate, etc. The
algorithm doubles the threshold each time on subsequent activations.
See Annex B of [<a href="#R.TR-471">TR-471</a>] for details. The default value SHOULD
be 5.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.RateAdjAlgorithm">RateAdjAlgorithm</span></td>
<td>string</td>
<td>W</td>
<td><p>Configurable choice of Load Rate Adjustment Algorithm. Refer to
[<a href="#R.TR-471">TR-471</a>] for details.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.RateAdjAlgorithm.B"><em>B</em></span> (Use type &ldquo;B&rdquo; Load Rate Adjustment Algorithm. See section 5.2.1 in [<a href="#R.TR-471">TR-471</a>] for details)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.RateAdjAlgorithm.C"><em>C</em></span> (Use type &ldquo;C&rdquo; Load Rate Adjustment Algorithm. See Annex B in [<a href="#R.TR-471">TR-471</a>] for details)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.">Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td>This object provides the results from individual UDPEchoPlus test
packets collected during a test if
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.EnableIndividualPacketResults"><em>EnableIndividualPacketResults</em></a> is set to true. When
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState"><em>DiagnosticsState</em></a> is set to
<strong>{{enum: reference to obsoleted enumeration Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Completed}}</strong> it should contain
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.NumberOfRepetitions"><em>NumberOfRepetitions</em></a> objects. Instance numbers MUST start at
1 and sequentially increment as new instances are created. The instance
number should match the TestIterationNumber field of the request and
response packet. All instances are removed when
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState"><em>DiagnosticsState</em></a> is set to
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> or
<a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.DiagnosticsState.None"><em>None</em></a>.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.TestRespRcvTimeStamp">TestRespRcvTimeStamp</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The TestRespRcvTimeStamp field in the response packet [<a href="#R.TR-143">Section A.1.4/TR-143</a>] from the UDP Echo Plus server (i.e. <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.Host"><em>Host</em></a>) to record the reception time <span class="inserted">in <em>microseconds</em> </span>of this UDP Echo Plus packet sent from the CPE client. If <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.PacketSuccess"><em>PacketSuccess</em></a> is <em>false</em>, <em>TestRespRcvTimeStamp</em> SHOULD be 0.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.TestRespReplyTimeStamp">TestRespReplyTimeStamp</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The TestRespReplyTimeStamp field in the response packet [<a href="#R.TR-143">Section A.1.4/TR-143</a>] from the UDP Echo Plus server (i.e. <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.Host"><em>Host</em></a>) to record the server reply time<span class="inserted"> in <em>microseconds</em></span> of this UDP Echo Plus packet sent from the CPE client.</p>

<p>That is, the time that the server returned the UDP Echo Plus packet. If <a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.PacketSuccess"><em>PacketSuccess</em></a> is <em>false</em>, <em>TestRespReplyTimeStamp</em> SHOULD be 0.</p></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.">Device.IP.Diagnostics.ServerSelectionDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides access to a diagnostics test that performs either
an ICMP Ping or UDP Echo ping against multiple hosts determining which
one has the smallest average response time. There MUST be a ping
response to the transmitted ping, or timeout, before the next ping is
sent out.</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState">DiagnosticsState</span></td>
<td><span title="DiagnosticsState">string</span></td>
<td>W</td>
<td><p>[<a href="#T.DiagnosticsState">DiagnosticsState</a>] Indicates the availability of diagnostics data. Enumeration of:</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>If the ACS sets the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>, the
CPE MUST initiate the corresponding diagnostic test. When writing, the
only allowed values are <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> and <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a>. To
ensure the use of the proper test parameters (the writable parameters in
this object), the test parameters MUST be set, and any errors or
inconsistencies in the test parameters MUST be detected, either prior to
or at the same time as (in the same SetParameterValues) setting this
parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a>.</p>

<p>When requested, the CPE SHOULD wait until after completion of the
communication session with the ACS before starting the diagnostic test.</p>

<p>When the test is completed, the value of this parameter MUST be either
<a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a> (if the test completed successfully), or one of the
<em>Error</em> values listed above.</p>

<p>If the value of this parameter is anything other than <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>,
the values of the results parameters for this test are indeterminate.</p>

<p>When the diagnostic initiated by the ACS is completed (successfully or
not), but not if it is canceled for any reason, the CPE MUST establish a
new connection to the ACS to allow the ACS to view the results,
indicating the Event code <em>8 DIAGNOSTICS COMPLETE</em> in the Inform
message.</p>

<p>After the diagnostic is complete, the value of all result parameters (all
read-only parameters in this object) MUST be retained by the CPE until
either this diagnostic is run again, or the CPE reboots. After a reboot,
if the CPE has not retained the result parameters from the most recent
test, it MUST set the value of this parameter to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>Modifying any of the writable parameters in this object except for this
one MUST result in the value of this parameter being set to
<a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, modifying any of the writable parameters
in this object except for this one MUST result in the test being
terminated and the value of this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></a> (and possibly modifying other writable parameters in
this object) MUST result in the test being terminated and then restarted
using the current values of the test parameters.</p>

<p>While the test is in progress, setting this parameter to
<a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> MUST result in the test being canceled and the value of
this parameter being set to <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></a>. If the CPE does not support
the <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></a> value, it MUST return a SPV error with &ldquo;Invalid
Parameter value&rdquo; (9007) to the ACS instead.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.None"><em>None</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Requested"><em>Requested</em></span></li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Canceled"><em>Canceled</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Completed"><em>Completed</em></span> (</li></ul>

<p>This enumeration was DEPRECATED in 2.13 because it’s a typo for <a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Complete"><em>Complete</em></a>.</p>

<p><span class="inserted">This enumeration was OBSOLETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div>

<p>, READONLY)</p>

<ul>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_CannotResolveHostName"><em>Error_CannotResolveHostName</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Internal"><em>Error_Internal</em></span> (READONLY)</li>
<li><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.DiagnosticsState.Error_Other"><em>Error_Other</em></span> (READONLY)</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of the IP-layer interface over which the test is to be performed<span class="removed">|ignore</span>. If the referenced object is deleted, the parameter value MUST be set to an empty string. Example: Device.IP.Interface.1</p>

<p><span class="removed">If an empty string is specified, the CPE MUST use the interface as directed by its routing policy (<em>Forwarding</em> table entries) to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPsec.">Device.IPsec.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>IPsec [<a href="#R.RFC4301">RFC4301</a>] object that supports the configuration of
Encapsulating Security Payload (ESP) [<a href="#R.RFC4303">RFC4303</a>] and
Authentication Header (AH) [<a href="#R.RFC4302">RFC4302</a>] in tunnel mode
[<a href="#R.RFC4301">Section 3.2/RFC4301</a>].</p>

<p>Use of IKEv2 [<a href="#R.RFC5996">RFC5996</a>] is assumed. The IPsec object does not
currently support static configuration of tunnels and child Security
Associations (SAs).</p>

<p>See the IPsec Theory of Operation [<a href="#R.TR-181i2">Appendix IX/TR-181i2</a>] for a
description of the working of this IPsec data model.</p></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPsec.Stats.">Device.IPsec.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Global IPsec statistics. These statistics include all IPsec traffic, i.e. all IKEv2 negotiation, IKEv2 SAs and child SAs.</p>

<p>The CPE MUST reset global IPsec Stats parameters (unless otherwise stated in individual object or parameter descriptions) either when IPsec is disabled (<strong>{{param: non-existent <span class="inserted">#.Enable</span>}}</strong> is set to <em>false</em>) or when IPsec is enabled (<strong>{{param: non-existent <span class="inserted">#.Enable</span>}}</strong> is set to <em>true</em>).</p></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPsec.Profile.">Device.IPsec.Profile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Profile table that represents the IPsec Security Policy Database (SPD)
[<a href="#R.RFC4301">Section 4.4.1/RFC4301</a>] processing info. Each entry defines
the IPsec treatment for packets that match the <a href="#D.Device:2.Device.IPsec.Filter."><em>Filter</em></a>
entries that reference the entry.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.IPsec.Profile.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.IPsec.Profile.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IPsec.Profile.IKEv2AuthenticationMethod">IKEv2AuthenticationMethod</span></td>
<td>string</td>
<td>W</td>
<td><p>IKEv2 CPE authentication method [<a href="#R.RFC5996">Section 2.15/RFC5996</a>]. The value MUST be the Path Name of an enabled row in the <strong>{{object: non-existent <span class="inserted">##.Security.Certificate</span>}}</strong> table or in another table that contains appropriate CPE credentials.</p>

<p>If an empty string, or the referenced row is disabled or deleted, the CPE chooses the authentication method based on local policy.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPsec.Tunnel.">Device.IPsec.Tunnel.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Represents an IPsec tunnel, i.e. a virtual IP interface that models an IPsec tunnel entry point and exit point. A <em>Tunnel</em> instance always references (and has the same lifetime as) a (<strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong>,<strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong>) <strong>{{object: non-existent <span class="inserted">##.IP.Interface</span>}}</strong> pair. The <em>Tunnel</em> instance models the IPsec-specific concepts, the <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span> <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface</em></a>}}</strong> instance models the generic concepts, and the <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span> <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface</em></a>}}</strong> instance exists only so it can be referenced by forwarding or filter rules.</p>

<p><em>Tunnel</em> instances are automatically created (as needed) when <a href="#D.Device:2.Device.IPsec.Filter."><em>Filter</em></a> instances are enabled and disabled.</p>

<p>Each instance’s <a href="#D.Device:2.Device.IPsec.Tunnel.Filters"><em>Filters</em></a> parameter references the <a href="#D.Device:2.Device.IPsec.Filter."><em>Filter</em></a> instances that require the <em>Tunnel</em> instance to exist. If this list ever becomes an empty string, e.g. because all the referenced <a href="#D.Device:2.Device.IPsec.Filter."><em>Filter</em></a> instances have been disabled or deleted, the CPE MAY choose not to delete the <em>Tunnel</em> instance (and its associated (<strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong>,<strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong>) <strong>{{object: non-existent <span class="inserted">##.IP.Interface</span>}}</strong> pair). This can be desirable, because <strong>{{object: non-existent <span class="inserted">##.QoS.Classification</span>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding."><em>Routing.Router.{i}.IPv4Forwarding</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding."><em>Routing.Router.{i}.IPv6Forwarding</em></a>}}</strong> etc instances might be referencing the <strong>{{object: non-existent <span class="inserted">##.IP.Interface</span>}}</strong> instances.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.IPsec.Tunnel.Alias"><em>Alias</em></a>, or with the same values for both <a href="#D.Device:2.Device.IPsec.Tunnel.TunnelInterface"><em>TunnelInterface</em></a> and <a href="#D.Device:2.Device.IPsec.Tunnel.TunneledInterface"><em>TunneledInterface</em></a>.</p></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IPsec.Tunnel.TunnelInterface">TunnelInterface</span></td>
<td>string</td>
<td>R</td>
<td>The corresponding auto-created <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong> <strong>{{object: non-existent <span class="inserted">##.IP.Interface</span>}}</strong> instance. The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, this instance MUST also be deleted (so the parameter value will never be an empty string).</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IPsec.Tunnel.TunneledInterface">TunneledInterface</span></td>
<td>string</td>
<td>R</td>
<td>The corresponding auto-created <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong> <strong>{{object: non-existent <span class="inserted">##.IP.Interface</span>}}</strong> instance. The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, this instance MUST also be deleted (so the parameter value will never be an empty string).</td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPsec.Tunnel.Stats.">Device.IPsec.Tunnel.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Statistics for this IPsec tunnel, i.e. all traffic that has passed through the tunnel, including IKEv2 negotiation, IKEv2 SA and ChildSA traffic.</p>

<p>The CPE MUST reset the tunnel’s Stats parameters (unless otherwise stated in individual object or parameter descriptions) either when the tunnel becomes operationally down due to a previous administrative down (i.e. its associated <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.Status</span>}}</strong> parameter transitions to a down state after the tunnel has been disabled) or when the tunnel becomes administratively up (i.e. its associated <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.Enable</span>}}</strong> parameter transition from <em>false</em> to <em>true</em>).</p>

<p>Note that this object does not include generic statistics that are available in the associated <strong>{{object: non-existent <span class="inserted">###.IP.Interface.{i}.Stats</span>}}</strong> object.</p></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MAP.">Device.MAP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>The Mapping of Address and Port (MAP) object [<a href="#R.RFC7597">RFC7597</a>]
[<a href="#R.RFC7599">RFC7599</a>] [<a href="#R.RFC7598">RFC7598</a>]. This object applies only to
gateway devices that support IPv4 on the LAN side, include a
<a href="#D.Device:2.Device.NAT."><em>NAT</em></a>, and typically have only IPv6 connectivity on the WAN
side.</p>

<p>See the MAP Theory of Operation [<a href="#R.TR-181i2">Appendix XV/TR-181i2</a>] for a
description of the working of this MAP data model.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MAP.Domain.">Device.MAP.Domain.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>MAP domain settings [<a href="#R.RFC7597">RFC7597</a>] [<a href="#R.RFC7599">RFC7599</a>]. Each
instance models a MAP domain.</p>

<p>MAP supports two transport modes, both of which use NAPT44 (modified to
use a restricted port range):</p>

<ul>
<li>MAP-E (<a href="#D.Device:2.Device.MAP.Domain.TransportMode"><em>TransportMode</em></a> =
<a href="#D.Device:2.Device.MAP.Domain.TransportMode.Encapsulation"><em>Encapsulation</em></a>) uses an IPv4-in-IPv6 tunnel.</li>
<li>MAP-T (<a href="#D.Device:2.Device.MAP.Domain.TransportMode"><em>TransportMode</em></a> = <a href="#D.Device:2.Device.MAP.Domain.TransportMode.Translation"><em>Translation</em></a>)
uses stateless NAT64.</li></ul>

<p>Note: There is an n:1 relationship between a MAP domain and the
associated <a href="#D.Device:2.Device.MAP.Domain.WANInterface"><em>WANInterface</em></a>, i.e. in theory multiple MAP domains
can be associated with a single WAN IP interface (each domain would
have its own <em>End-user IPv6 prefix</em> and <em>MAP IPv6 address</em>).</p>

<p>Note: The <em>Domain</em> table includes unique key parameters that are
strong references. If a strongly referenced object is deleted, the CPE
will set the referencing parameter to an empty string. However, doing so
under these circumstances might cause the updated <em>Domain</em> row to
then violate the table’s unique key constraint; if this occurs, the CPE
MUST set <a href="#D.Device:2.Device.MAP.Domain.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.MAP.Domain.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and
disable the offending <em>Domain</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MAP.Domain.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.MAP.Domain.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for both <a href="#D.Device:2.Device.MAP.Domain.WANInterface"><em>WANInterface</em></a> and <a href="#D.Device:2.Device.MAP.Domain.IPv6Prefix"><em>IPv6Prefix</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MAP.Domain.BRIPv6Prefix">BRIPv6Prefix</span></td>
<td><span title="IPv6Prefix">string(:49)</span></td>
<td>W</td>
<td><p>[<a href="#T.IPv6Prefix">IPv6Prefix</a>] The MAP Border Relay (BR) address or prefix.</p>

<ul>
<li>For MAP-E this is the BR address and therefore MUST be a /128 [<a href="#R.RFC7597">RFC7597</a>]. Note this address can be an IPv6 anycast address. This address corresponds to the [<a href="#R.RFC7598">RFC7598</a>] <em>OPTION_S46_BR</em> (Border Relay) option.</li>
<li>For MAP-T this is the BR prefix [<a href="#R.RFC7599">RFC7599</a>]. This address prefix corresponds to the [<a href="#R.RFC7598">RFC7598</a>] <em>OPTION_S46_DMR</em> (Default Mapping Rule) option.</li></ul>

<p>Note: There will be a corresponding <strong>{{object: non-existent <span class="inserted">##.Routing.Router.{i}.IPv4Forwarding</span>}}</strong> default rule.</p></td>
<td>-</td>
<td>2.8</td></tr></tbody>
<tbody class="showable">
<tr class="obsoleted-parameter">
<td><span id="D.Device:2.Device.MAP.Domain.PSIDOffset">PSIDOffset</span></td>
<td>unsignedInt(0:15)</td>
<td>W</td>
<td><div class="hide"><em>Port-set ID</em> (PSID) offset in <em>bits</em>. The number of Port-sets is 2^<em>PSIDOffset</em>.</div>

<div class="hide">Corresponds to the [<a href="#R.RFC7598">RFC7598</a>] <em>S46_PORTPARAMS</em> (Port Parameters) option’s <em>offset</em> field.</div>

<div class="hide">This parameter was DEPRECATED in 2.12 because details changed between drafting this data model and the RFC being published. This parameter has been moved to the proper location within the <a href="#D.Device:2.Device.MAP.Domain.Rule."><em>Rule.{i}.</em></a> object.</div>

<div class="chevron">This parameter was OBSOLETED in <span class="inserted">2.14-2.16</span>.<span class="click"></span></div></td>
<td>6</td>
<td>2.8</td></tr></tbody>
<tbody class="showable">
<tr class="obsoleted-parameter">
<td><span id="D.Device:2.Device.MAP.Domain.PSIDLength">PSIDLength</span></td>
<td>unsignedInt(0:16)</td>
<td>W</td>
<td><div class="hide">The length in <em>bits</em> of the <em>Port-set id</em> (PSID) configured in the <a href="#D.Device:2.Device.MAP.Domain.PSID"><em>PSID</em></a> parameter.</div>

<div class="hide">Corresponds to the [<a href="#R.RFC7598">RFC7598</a>] <em>S46_PORTPARAMS</em> (Port Parameters) option’s <em>PSID-len</em> field.</div>

<div class="hide">This parameter was DEPRECATED in 2.12 because details changed between drafting this data model and the RFC being published. This parameter has been moved to the proper location within the <a href="#D.Device:2.Device.MAP.Domain.Rule."><em>Rule.{i}.</em></a> object.</div>

<div class="chevron">This parameter was OBSOLETED in <span class="inserted">2.14-2.16</span>.<span class="click"></span></div></td>
<td>0</td>
<td>2.8</td></tr></tbody>
<tbody class="showable">
<tr class="obsoleted-parameter">
<td><span id="D.Device:2.Device.MAP.Domain.PSID">PSID</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><div class="hide"><em>Port-set ID</em> (PSID) to use in preference to the value extracted from the <em>Embedded Address</em> (EA) bits.</div>

<div class="hide">Only the high order <a href="#D.Device:2.Device.MAP.Domain.PSIDLength"><em>PSIDLength</em></a> bits of the <em>PSID</em> value are used, so the parameter is ignored when <a href="#D.Device:2.Device.MAP.Domain.PSIDLength"><em>PSIDLength</em></a> is zero.</div>

<div class="hide">Corresponds to the [<a href="#R.RFC7598">RFC7598</a>] <em>S46_PORTPARAMS</em> (Port Parameters) option’s <em>PSID</em> field.</div>

<div class="hide">This parameter was DEPRECATED in 2.12 because details changed between drafting this data model and the RFC being published. This parameter has been moved to the proper location within the <a href="#D.Device:2.Device.MAP.Domain.Rule."><em>Rule.{i}.</em></a> object.</div>

<div class="chevron">This parameter was OBSOLETED in <span class="inserted">2.14-2.16</span>.<span class="click"></span></div></td>
<td>0</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.">Device.Routing.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Routing object that contains the <a href="#D.Device:2.Device.Routing.Router."><em>Router</em></a> table and
<a href="#D.Device:2.Device.Routing.RIP."><em>RIP</em></a> protocol object.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Router.">Device.Routing.Router.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object allows the handling of the routing and forwarding
configuration of the device.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Routing.Router.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Router.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.">Device.Routing.Router.{i}.IPv4Forwarding.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Layer 3 IPv4 forwarding table.</p>

<p>In addition to statically configured routes, this table MUST include
dynamic routes learned through layer 3 routing protocols, including RIP
(i.e. RIP version 2), OSPF, DHCPv4, and IPCP. The CPE MAY reject
attempts to delete or modify a dynamic route entry.</p>

<p>For each incoming packet, the layer 3 forwarding decision is
conceptually made as follows:</p>

<ul>
<li>Only enabled table entries with a matching <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>
are considered, i.e. those that either do not specify a
<a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>, or else specify a
<a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a> that matches that of the incoming packet.</li>
<li>Next, table entries that also have a matching destination
address/mask are considered, and the matching entry with the longest
prefix is applied to the packet (i.e. the entry with the most
specific network). An unspecified destination address is a wild-card
and always matches, but with a prefix length of zero.</li></ul>

<p>For enabled table entries, if <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Interface"><em>Interface</em></a> is not a valid
reference to an IPv4-capable interface (that is attached to the IPv4
stack), then the table entry is inoperable and the CPE MUST set
<a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Note: The <em>IPv4Forwarding</em> table includes a unique key parameter that is a
strong reference. If a strongly referenced object is deleted, the CPE
will set the referencing parameter to an empty string. However, doing so
under these circumstances might cause the updated <em>IPv4Forwarding</em> row to
then violate the table’s unique key constraint; if this occurs, the CPE
MUST disable the offending <em>IPv4Forwarding</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.DestIPAddress"><em>DestIPAddress</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.DestSubnetMask"><em>DestSubnetMask</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.GatewayIPAddress"><em>GatewayIPAddress</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Interface"><em>Interface</em></a> and <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingMetric"><em>ForwardingMetric</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.Type"><em>Type</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Type">Type</span></td>
<td>string</td>
<td>W</td>
<td><p>Specifies the forwarding entry type. Based on [<a href="#R.RFC8349">RFC8349</a>]</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Type.Normal"><em>Normal</em></span> (The packet will be sent to the next hop)</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Type.Receive"><em>Receive</em></span> (The packet will be received by the local system)</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Type.Blackhole"><em>Blackhole</em></span> (The specified destinations are considered unreachable. Packets are silently discarded)</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Type.Unreachable"><em>Unreachable</em></span> (The specified destinations are considered unreachable. Packets are discarded and an ICMP message &ldquo;host unreachable message&rdquo; is sent)</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.Type.Prohibit"><em>Prohibit</em></span> (The specified destinations are considered unreachable. Packets are discarded and an ICMP message &ldquo;communication administratively prohibited&rdquo; is sent)</li></ul></td>
<td>Normal</td>
<td>2.16</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Router.IPv4Forwarding.ForwardingPolicy">ForwardingPolicy</span></td>
<td>int(-1:)</td>
<td>W</td>
<td><p>Identifier of a set of classes or flows that have the corresponding <em>ForwardingPolicy</em> value as defined in the <strong>{{object: non-existent <span class="inserted">###.QoS</span>}}</strong> object.</p>

<p>A value of -1 indicates no <em>ForwardingPolicy</em> is specified.</p>

<p>If specified, this forwarding entry is to apply only to traffic associated with the specified classes and flows.</p></td>
<td>-1</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.">Device.Routing.Router.{i}.IPv6Forwarding.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Layer 3 IPv6 forwarding table.</p>

<p>In addition to statically configured routes, this table MUST include
dynamic routes learned through layer 3 routing protocols, including
RIPng, OSPF, DHCPv6, and RA. The CPE MAY reject attempts to delete or
modify a dynamic route entry.</p>

<p>For each incoming packet, the layer 3 forwarding decision is
conceptually made as follows:</p>

<ul>
<li>Only enabled table entries with a matching <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>
are considered, i.e. those that either do not specify a
<a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>, or else specify a
<a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a> that matches that of the incoming packet.</li>
<li>Next, table entries that also have a matching destination prefix are
considered, and the matching entry with the longest prefix length is
applied to the packet (i.e. the entry with the most specific
network). An unspecified destination address is a wild-card and
always matches, but with a prefix length of zero.</li></ul>

<p>For enabled table entries, if <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Interface"><em>Interface</em></a> is not a valid
reference to an IPv6-capable interface (that is attached to the IPv6
stack), then the table entry is inoperable and the CPE MUST set
<a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>This object is based on <em>inetCidrRouteTable</em> from [<a href="#R.RFC4292">RFC4292</a>].</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.DestIPPrefix"><em>DestIPPrefix</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy"><em>ForwardingPolicy</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.NextHop"><em>NextHop</em></a>, <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Interface"><em>Interface</em></a> and <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingMetric"><em>ForwardingMetric</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.Type"><em>Type</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Type">Type</span></td>
<td>string</td>
<td>W</td>
<td><p>Specifies the forwarding entry type. Based on [<a href="#R.RFC8349">RFC8349</a>]</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Type.Normal"><em>Normal</em></span> (The packet will be sent to the next hop)</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Type.Receive"><em>Receive</em></span> (The packet will be received by the local system)</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Type.Blackhole"><em>Blackhole</em></span> (The specified destinations are considered unreachable. Packets are silently discarded)</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Type.Unreachable"><em>Unreachable</em></span> (The specified destinations are considered unreachable. Packets are discarded and an ICMP message &ldquo;host unreachable message&rdquo; is sent)</li>
<li><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.Type.Prohibit"><em>Prohibit</em></span> (The specified destinations are considered unreachable. Packets are discarded and an ICMP message &ldquo;communication administratively prohibited&rdquo; is sent)</li></ul></td>
<td>Normal</td>
<td>2.16</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Router.IPv6Forwarding.ForwardingPolicy">ForwardingPolicy</span></td>
<td>int(-1:)</td>
<td>W</td>
<td><p>Identifier of a set of classes or flows that have the corresponding <em>ForwardingPolicy</em> value as defined in the <strong>{{object: non-existent <span class="inserted">###.QoS</span>}}</strong> object.</p>

<p>A value of -1 indicates no <em>ForwardingPolicy</em> is specified.</p>

<p>If specified, this forwarding entry is to apply only to traffic associated with the specified classes and flows.</p></td>
<td>-1</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.RouteInformation.">Device.Routing.RouteInformation.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Received Router Advertisement (RA) route information
[<a href="#R.RFC4191">RFC4191</a>].</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.">Device.Routing.RouteInformation.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>IP Interface RA route information table. Contains received RA route
information [<a href="#R.RFC4191">RFC4191</a>]. As such, the data in this table cannot
be modified.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Interface"><em>Interface</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.ManagedAddressConfiguration"><em>ManagedAddressConfiguration</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.OtherConfiguration"><em>OtherConfiguration</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.ReachableTime"><em>ReachableTime</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.RetransTimer"><em>RetransTimer</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.HomeAgent"><em>HomeAgent</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.OptionNumberOfEntries"><em>OptionNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option."><em>Option.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.ManagedAddressConfiguration">ManagedAddressConfiguration</span></td>
<td>boolean</td>
<td>R</td>
<td>When set, it indicates that addresses are available via Dynamic Host
Configuration Protocol [DHCPv6]. If the <em>ManagedAddressConfiguration</em> is set, the
<a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.OtherConfiguration"><em>OtherConfiguration</em></a> is redundant and can be ignored because
DHCPv6 will return all available configuration information (see
[<a href="#R.RFC4861">Section 4.2/RFC4861</a>]).</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.OtherConfiguration">OtherConfiguration</span></td>
<td>boolean</td>
<td>R</td>
<td>When set, it indicates that other configuration information is
available via DHCPv6. Examples of such information are DNS-related
information or information on other servers within the network (see
[<a href="#R.RFC4861">Section 4.2/RFC4861</a>]).</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.ReachableTime">ReachableTime</span></td>
<td>unsignedInt(:3600000)</td>
<td>R</td>
<td>The time, in <em>milliseconds</em>, that a node assumes a neighbor is reachable
after having received a reachability confirmation. Used by the
Neighbor Unreachability Detection algorithm [<a href="#R.RFC4861">See
Section 7.3/RFC4861</a>]. A value of zero means unspecified (by this router)
(see [<a href="#R.RFC4861">Section 4.2/RFC4861</a>]).</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.RetransTimer">RetransTimer</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The time, in <em>milliseconds</em>, between retransmitted Neighbor Solicitation
messages. Used by address resolution and the Neighbor Unreachability
Detection algorithm [<a href="#R.RFC4861">Sections 7.2 and 7.3/RFC4861</a>]. A value
of zero means unspecified (by this router) (see
[<a href="#R.RFC4861">Section 4.2/RFC4861</a>]).</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.HomeAgent">HomeAgent</span></td>
<td>boolean</td>
<td>R</td>
<td>The Home Agent (H) bit is set in a Router Advertisement to indicate
that the router sending this Router Advertisement is also functioning
as a Mobile IPv6 home agent on this link. (see
[<a href="#R.RFC3775">Section 7.1/RFC3775</a>] and [<a href="#R.RFC4861">Section 4.2/RFC4861</a>])</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.OptionNumberOfEntries">OptionNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option."><em>Option</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option.">Device.Routing.RouteInformation.InterfaceSetting.{i}.Option.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object specifies the received options in a Router Advertisement
(RA) message [<a href="#R.RFC4861">Section 4.6/RFC4861</a>]. This includes support for
receiving DNS information in the RA message as described in
[<a href="#R.RFC6106">RFC6106</a>].</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option.Tag"><em>Tag</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option.Tag">Tag</span></td>
<td>unsignedInt(0:65535)</td>
<td>R</td>
<td>Option tag (type) [<a href="#R.RFC4861">Section 4.6/RFC4861</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option.Value">Value</span></td>
<td>hexBinary(0:65535)</td>
<td>R</td>
<td>A hexbinary encoded option value [<a href="#R.RFC4861">Section 4.6/RFC4861</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Babel.">Device.Routing.Babel.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides parameters for configuration, troubleshooting, and
monitoring of the Babel routing protocol [<a href="#R.RFC8966">RFC8966</a>]. This data
model is based on the Babel information model defined in
[<a href="#R.RFC9046">RFC9046</a>].</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Babel.StatsReset">StatsReset</span></td>
<td>boolean</td>
<td>W</td>
<td>When set to <em>true</em>, all Babel statistics counters are reset to zero. Statistics are provided in <strong>{{object: non-existent <span class="inserted">InterfaceSetting.{i}.Stats.</span>}}</strong>.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Babel.InterfaceSetting.">Device.Routing.Babel.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides parameters related to the interfaces the Babel
protocol is operating over and can act as a routing protocol for.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Routing.Babel.InterfaceSetting.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Babel.InterfaceSetting.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Babel.InterfaceSetting.InterfaceReference">InterfaceReference</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The <strong>{{object: non-existent <span class="inserted">###.IP.Interface</span>}}</strong> object instance this Babel implementation is running over. The referenced interface object MUST have <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Enable</span>}}</strong> set to true.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Babel.InterfaceSetting.PacketLog">PacketLog</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DeviceInfo.VendorLogFile."><em>DeviceInfo.VendorLogFile.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. A reference to a <strong>{{object: non-existent <span class="inserted">###.DeviceInfo.VendorLogFile</span>}}</strong> instance that contains a timestamped log of packets received and sent on <a href="#D.Device:2.Device.Routing.Babel.Constants.UDPPort"><em>Constants.UDPPort</em></a> on this interface. The [<a href="#R.LIBPCAP">LIBPCAP</a>] file format with .pcap file extension SHOULD be supported for packet log files. Logging is enabled/disabled by <a href="#D.Device:2.Device.Routing.Babel.InterfaceSetting.PacketLogEnable"><em>PacketLogEnable</em></a>.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Babel.MACKeySet.">Device.Routing.Babel.MACKeySet.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides parameters related to use of the HMAC security
mechanism [<a href="#R.RFC8967">RFC8967</a>] to sign and verify Babel packets.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Routing.Babel.MACKeySet.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Babel.MACKeySet.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Babel.MACKeySet.MACKey.">Device.Routing.Babel.MACKeySet.{i}.MACKey.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides the MAC keys used to calculate MACs for
verification and sending by the <a href="#D.Device:2.Device.Routing.Babel.MACKeySet."><em>MACKeySet</em></a> instance.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Routing.Babel.MACKeySet.MACKey.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Babel.MACKeySet.MACKey.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Babel.MACKeySet.MACKey.KeyValue">KeyValue</span></td>
<td>hexBinary</td>
<td>WO</td>
<td><p>The value of the MAC key. This value is immutable, once written. This
value is of a length suitable for the associated
<a href="#D.Device:2.Device.Routing.Babel.MACKeySet.MACKey.MACKeyAlgorithm"><em>MACKeyAlgorithm</em></a>. If the algorithm is based on the HMAC
construction [<a href="#R.RFC2104">RFC2104</a>], the length MUST be between 0 and an
upper limit that is at least the size of the output length (where
&ldquo;HMAC-SHA256&rdquo; output length is 32 octets as described in
[<a href="#R.RFC4868">RFC4868</a>]). Longer lengths MAY be supported but are not
necessary if the management system has the ability to generate a
suitably random value (e.g., by randomly generating a value or by
using a key derivation technique as recommended in
[<a href="#R.RFC8967">Security Considerations/RFC8967</a>]). If the algorithm is
&ldquo;BLAKE2s-128&rdquo;, the length MUST be between 0 and 32 bytes inclusive,
as specified in [<a href="#R.RFC7693">RFC7693</a>].</p>

<p>Once it’s been set, this parameter is immutable.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>hexBinary</em> syntax hidden = <em>true</em></li>
<li>Added <em>hexBinary</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Babel.DTLSCertSet.">Device.Routing.Babel.DTLSCertSet.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides parameters related to use of the DTLS security
mechanism [<a href="#R.RFC8968">RFC8968</a>] to encrypt Babel packets.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Routing.Babel.DTLSCertSet.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Babel.DTLSCertSet.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Routing.Babel.DTLSCertSet.DTLSCert.">Device.Routing.Babel.DTLSCertSet.{i}.DTLSCert.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object provides the certificates used for verification and signing
by the <a href="#D.Device:2.Device.Routing.Babel.DTLSCertSet."><em>DTLSCertSet</em></a> instance with DTLS.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Routing.Babel.DTLSCertSet.DTLSCert.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Routing.Babel.DTLSCertSet.DTLSCert.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Routing.Babel.DTLSCertSet.DTLSCert.CertPrivateKey">CertPrivateKey</span></td>
<td>hexBinary</td>
<td>WO</td>
<td><p>The private key of the certificate. <em>CertPrivateKey</em> is only given a value
if the certificate belongs to this device. If <em>CertPrivateKey</em> is non-empty,
this certificate can be supplied during DTLS handshaking. This value
is immutable, once written.</p>

<p>Once it’s been set, this parameter is immutable.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>hexBinary</em> syntax hidden = <em>true</em></li>
<li>Added <em>hexBinary</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.RouterAdvertisement.">Device.RouterAdvertisement.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>The Router Advertisement (RA) object [<a href="#R.RFC4861">RFC4861</a>]. This object applies only to IPv6. It contains an <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting."><em>InterfaceSetting</em></a> table that defines the RA configuration for individual IP interfaces.</p>

<p>Information received via router advertisement messages is automatically propagated to the relevant <strong>{{object: non-existent <span class="inserted">#.IP.Interface</span>}}</strong> sub-objects, e.g. to the <strong>{{object: non-existent <span class="inserted">#.IP.Interface.{i}.IPv6Address</span>}}</strong> and <strong>{{object: non-existent <span class="inserted">#.IP.Interface.{i}.IPv6Prefix</span>}}</strong> tables.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.RouterAdvertisement.InterfaceSetting.">Device.RouterAdvertisement.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Per-interface Router Advertisement (RA) configuration
[<a href="#R.RFC4861">RFC4861</a>]. Table entries are created for use in sending Router
Advertisements.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Interface"><em>Interface</em></a> is not a valid
reference to an IPv6-capable interface (that is attached to the IPv6
stack), then the table entry is inoperable and the CPE MUST set
<a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Note: The <em>InterfaceSetting</em> table includes a unique key parameter that is a
strong reference. If a strongly referenced object is deleted, the CPE
will set the referencing parameter to an empty string. However, doing so
under these circumstances might cause the updated <em>InterfaceSetting</em> row to
then violate the table’s unique key constraint; if this occurs, the CPE
MUST set <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and
disable the offending <em>InterfaceSetting</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Interface"><em>Interface</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.RouterAdvertisement.InterfaceSetting.ManualPrefixes">ManualPrefixes</span></td>
<td>string[:8]()</td>
<td>W</td>
<td><p>Comma-separated list (up to 8 items) (length ) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IP.Interface.{i}.IPv6Prefix.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list.</p>

<p>Manually-configured prefixes that will be sent in Router Advertisement messages. Each referenced prefix MUST have a <strong>{{param: non-existent <span class="inserted">##.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong> of <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong> or <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong>. Router Advertisement messages MUST include Prefix Information Options [<a href="#R.RFC4861">RFC4861</a>] for all <em>Valid</em> (<strong>{{param: non-existent <span class="inserted">##.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime</span>}}</strong> is infinite or in the future) prefixes in this list.</p>

<p>Prefixes MUST be associated with the interface instance referenced by <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Interface"><em>Interface</em></a>.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Prefixes">Prefixes</span></td>
<td>string[:8]()</td>
<td>R</td>
<td><p>Comma-separated list (up to 8 items) (length ) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IP.Interface.{i}.IPv6Prefix.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list.</p>

<p>All prefixes that will be included in Router Advertisement (RA) messages sent out this interface. This list can include:</p>

<ul>
<li>Prefixes from <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.ManualPrefixes"><em>ManualPrefixes</em></a> that are included in RA messages.</li>
<li>Prefixes with <strong>{{param: non-existent <span class="inserted">##.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> = <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> or <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> associated with the interface instance referenced by <a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.Interface"><em>Interface</em></a>.</li></ul></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.RouterAdvertisement.InterfaceSetting.AdvRetransTimer">AdvRetransTimer</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><p>The value placed in the &ldquo;Retrans Timer&rdquo; field of Router Advertisement messages on this <span class="removed">interface</span><span class="inserted">interface, in <em>milliseconds</em></span> (see [<a href="#R.RFC4861">Section 4.2/RFC4861</a>]).</p>

<p>The value zero means unspecified (by the router).</p></td>
<td>0</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPv6rd.">Device.IPv6rd.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Settings allowing a CPE to derive and route IPv6 Rapid Deployment (6rd)
delegated prefixes as specified in [<a href="#R.RFC5969">RFC5969</a>]. The 6rd
mechanism is intended to be implemented only on what [<a href="#R.RFC5969">RFC5969</a>]
refers to as <em>Customer Edge Routers</em>, i.e. on gateway devices, that
support IPv6 on the LAN side and only have IPv4 connectivity on the WAN
side.</p>

<p>See the 6rd Theory of Operation [<a href="#R.TR-181i2">Appendix VI/TR-181i2</a>] for a
description of the working of this 6rd data model.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IPv6rd.InterfaceSetting.">Device.IPv6rd.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>6rd [<a href="#R.RFC5969">RFC5969</a>] settings.</p>

<p>A 6rd delegated prefix is expected to be of maximum length 64 bits, and
is the concatenation of the following two items:</p>

<ul>
<li>Service provider IPv6 prefix: specified via the
<a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.SPIPv6Prefix"><em>SPIPv6Prefix</em></a> parameter</li>
<li>IPv4 address suffix: the IPv4 address with the first
<a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.IPv4MaskLength"><em>IPv4MaskLength</em></a> bits removed</li></ul>

<p>This object definition is derived from [<a href="#R.RFC5969">RFC5969</a>] with some
minor nomenclature changes.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IPv6rd.InterfaceSetting.TunnelInterface">TunnelInterface</span></td>
<td>string(:256)</td>
<td>R</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This is an IP interface of <em>Type</em> <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong> that is logically the tunnel entry point for upstream IPv6 traffic and is also logically the tunnel exit point for downstream IPv6 traffic (i.e. the entry point for non-tunneled upstream IPv6 traffic to enter a tunnel and become tunneled, or conversely, the exit point for downstream IPv6 traffic leaving a tunnel after being un-tunneled).</p>

<p>IPv6 traffic that enters <em>TunnelInterface</em> from the LAN is expected to continue on through <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.TunneledInterface"><em>TunneledInterface</em></a>, and traffic from the WAN is expected to come from <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.TunneledInterface"><em>TunneledInterface</em></a> into <em>TunnelInterface</em>. <em>TunnelInterface</em> is a logical interface that can allow for classification, marking (of IPv6 headers), and policing of IPv6 traffic that will be going over a 6rd tunnel. These functions are modeled in the <strong>{{object: non-existent <span class="inserted">##.QoS</span>}}</strong> object.</p>

<p><em>TunnelInterface</em> can be used also to represent the 6rd virtual interface defined in [<a href="#R.RFC5969">RFC5969</a>].</p>

<p>Note: In 6rd, IPv6 packets arriving over one or more device LAN IP interfaces are logically fed into this <em>TunnelInterface</em>. Likewise, 6rd traffic from the WAN gets logically sent from this <em>TunnelInterface</em> to LAN IP interfaces.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IPv6rd.InterfaceSetting.TunneledInterface">TunneledInterface</span></td>
<td>string(:256)</td>
<td>R</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This is an IP interface of <em>Type</em> <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong> that provides information about the IPv4 headers used to encapsulate the IPv6 packets.</p>

<p>Encapsulated IPv6 traffic that enters <em>TunneledInterface</em> from the WAN is expected to continue on through <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.TunnelInterface"><em>TunnelInterface</em></a>, and traffic from the LAN is expected to come from <a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.TunnelInterface"><em>TunnelInterface</em></a> into <em>TunneledInterface</em>. <em>TunneledInterface</em> is a logical interface that can allow for classification, marking (of IPv4 headers and VLAN tags), and policing of IPv4 packets that encapsulate IPv6 packets in 6rd traffic. These functions are modeled in the <strong>{{object: non-existent <span class="inserted">##.QoS</span>}}</strong> object.</p>

<p>Note: In 6rd, <em>TunneledInterface</em> traffic originating from the LAN logically feeds into a WAN-side IPv4 capable IP interface that the &ldquo;IPv6 6rd tunnel&rdquo; goes over. 6rd traffic that enters over this IPv4 WAN interface gets logically sent to this <em>TunneledInterface</em>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSLite.">Device.DSLite.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Settings allowing a CPE to configure and route IPv6 Dual-Stack Lite
(DSLite) as specified in [<a href="#R.DSLite">DSLite</a>]. The DS-Lite mechanism is
intended to be implemented only on gateway devices that support IPv4 on
the LAN side and only have IPv6 connectivity on the WAN side.</p>

<p>See the Dual-Stack Lite Theory of Operation [<a href="#R.TR-181i2">Appendix
VII/TR-181i2</a>] for a description of the working of this DS-Lite data model.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DSLite.InterfaceSetting.">Device.DSLite.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>DSLite [<a href="#R.DSLite">DSLite</a>] settings.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.DSLite.InterfaceSetting.Alias"><em>Alias</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSLite.InterfaceSetting.TunnelInterface">TunnelInterface</span></td>
<td>string(:256)</td>
<td>R</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This is an IP interface of <em>Type</em> <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong> that is logically the tunnel entry point for upstream IPv4 traffic and is also logically the tunnel exit point for downstream IPv4 traffic (i.e. the entry point for non-tunneled upstream IPv4 traffic to enter a tunnel and become tunneled, or conversely, the exit point for downstream IPv4 traffic leaving a tunnel after being un-tunneled).</p>

<p>IPv4 traffic that enters <em>TunnelInterface</em> is expected to continue on through <a href="#D.Device:2.Device.DSLite.InterfaceSetting.TunneledInterface"><em>TunneledInterface</em></a> from the LAN, and traffic from the WAN is expected to come from TunneledInterface into TunnelInterface. TunnelInterface is a logical interface that can allow for classification, marking (of IPv4 headers), and policing of IPv4 traffic that will be going over a DS-Lite tunnel. These functions are modeled in the Device.QoS object.</p>

<p>Note: In DS-Lite, IPv4 packets arriving over one or more device LAN IP interfaces are logically fed into this <em>TunnelInterface</em>. Likewise, DS-Lite traffic from the WAN gets logically sent from this <em>TunnelInterface</em> to LAN IP interfaces.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DSLite.InterfaceSetting.TunneledInterface">TunneledInterface</span></td>
<td>string(:256)</td>
<td>R</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This is an IP interface of <em>Type</em> <strong>{{enum: non-existent <span class="inserted">##.IP.Interface.{i}.Type</span>}}</strong> that provides information about the IPv6 headers used to encapsulate the IPv4 packets.</p>

<p>Encapsulated IPv4 traffic that enters <em>TunneledInterface</em> from the WAN is expected to continue on through <a href="#D.Device:2.Device.DSLite.InterfaceSetting.TunnelInterface"><em>TunnelInterface</em></a>, and traffic from the LAN is expected to come from <a href="#D.Device:2.Device.DSLite.InterfaceSetting.TunnelInterface"><em>TunnelInterface</em></a> into <em>TunneledInterface</em>. <em>TunneledInterface</em> is a logical interface that can allow for classification, marking (of IPv6 headers and VLAN tags), and policing of IPv6 packets that encapsulate IPv4 packets in DS-Lite traffic. These functions are modeled in the <strong>{{object: non-existent <span class="inserted">##.QoS</span>}}</strong> object.</p>

<p>Note: In DS-Lite, <em>TunneledInterface</em> traffic originating from the LAN logically feeds into a WAN-side IPv6 capable IP interface that the &ldquo;DSLite IPv4-in-IPv6 tunnel&rdquo; goes over. DS-Lite traffic that enters over this IPv6 WAN interface gets logically sent to this <em>TunneledInterface</em>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.">Device.QoS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Queue management configuration object.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.QoS.MaxSchedulerEntries"><em>MaxSchedulerEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.QoS.SchedulerNumberOfEntries"><em>SchedulerNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.QoS.Scheduler."><em>Scheduler.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.MaxSchedulerEntries">MaxSchedulerEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The maximum number of entries available in the <a href="#D.Device:2.Device.QoS.Scheduler."><em>Scheduler</em></a>
table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.SchedulerNumberOfEntries">SchedulerNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.QoS.Scheduler."><em>Scheduler</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.Classification.">Device.QoS.Classification.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Classification table.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.QoS.Classification.Interface"><em>Interface</em></a> is not a valid
reference and <a href="#D.Device:2.Device.QoS.Classification.AllInterfaces"><em>AllInterfaces</em></a> is <em>false</em>, then the table
entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.QoS.Classification.Status"><em>Status</em></a> to
<a href="#D.Device:2.Device.QoS.Classification.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Several of this object’s parameters specify DHCP option values. Some
cases are version neutral (the parameter can apply to both DHCPv4 and
DHCPv6), but in other cases the representation of the option is
different for DHCPv4 and DHCPv6, so it is necessary to define separate
DHCPv4-specific and DHCPv6-specific parameters. Therefore, an instance
of this object that uses DHCP option values as classification criteria
will be associated with either DHCPv4 or DHCPv6, as indicated by the
<a href="#D.Device:2.Device.QoS.Classification.DHCPType"><em>DHCPType</em></a> parameter.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.Classification.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.Classification.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.QoS.Classification.IPVersion"><em>IPVersion</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.QoS.Classification.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Classification criterion. The value MUST be the Path Name of a table row.</p>

<p>This specifies the ingress interface associated with the entry. It MAY be a layer 1, 2 or 3 interface, however, the types of interfaces for which <em>Classifications</em> can be instantiated is a local matter to the CPE.</p>

<p>Note that this parameter is permitted to reference <em>Tunnel</em> instances in order to classify upstream packets that have just been encapsulated (such packets are conceptually similar to locally-generated traffic). For example, this parameter might reference a <strong>{{object: non-existent <span class="inserted">##.GRE.Tunnel</span>}}</strong> or a <strong>{{object: non-existent <span class="inserted">##.MAP.Domain</span>}}</strong> instance.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Classification.IPVersion">IPVersion</span></td>
<td>int(-1:15)</td>
<td>W</td>
<td><p>Classification criterion.</p>

<p>IP Protocol Version as specified in [<a href="#R.IANA-ipversionnumbers">IANA-ipversionnumbers</a>].
For example:</p>

<ul>
<li><em>4</em> (IPv4)</li>
<li><em>6</em> (IPv6)</li></ul>

<p>A value of <em>-1</em> indicates this criterion is not used for matching.</p></td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.Flow.">Device.QoS.Flow.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Flow table.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.Flow.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.Flow.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.QoS.Flow.TypeParameters">TypeParameters</span></td>
<td>string(:256)[]</td>
<td>W</td>
<td>Comma-separated list of strings (maximum number of characters per item 256). <span class="removed">List</span><span class="inserted">Each</span> <span class="removed">of</span><span class="inserted">entry is a</span> name-value <span class="removed">pairs</span><span class="inserted">pair</span> representing additional criteria to identify the flow type. The use and interpretation is specific to the particular FlowType URN.Encoded using the &ldquo;x-www-form-urlencoded&rdquo; content type defined in [<a href="#R.HTML4.01">HTML4.01</a>].

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>string(:256)[]</em> syntax <em>[]</em> list</li></ul></div></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.Queue.">Device.QoS.Queue.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Queue table. Each entry is associated with a set of traffic classes,
which are specified via the <a href="#D.Device:2.Device.QoS.Queue.TrafficClasses"><em>TrafficClasses</em></a> parameter, and is
configured with weight, precedence, drop algorithm, scheduler algorithm
etc as appropriate for the traffic classes. An entry can be associated
either with all egress interfaces (in which case an actual queue will
be instantiated on each egress interface on which traffic of that
traffic class can be generated) or else with a single specified egress
interface.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.QoS.Queue.Interface"><em>Interface</em></a> is not a valid
reference and <a href="#D.Device:2.Device.QoS.Queue.AllInterfaces"><em>AllInterfaces</em></a> is <em>false</em>, then the table
entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.QoS.Queue.Status"><em>Status</em></a> to
<a href="#D.Device:2.Device.QoS.Queue.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.Queue.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.Queue.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.QoS.Queue.Children"><em>Children</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.QoS.Queue.CurrentShapingRate"><em>CurrentShapingRate</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.QoS.Queue.AssuredRate"><em>AssuredRate</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.QoS.Queue.CurrentAssuredRate"><em>CurrentAssuredRate</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Queue.Children">Children</span></td>
<td>string[]</td>
<td>W</td>
<td>Each list item MUST be the Path Name of a table row, or an empty string. Comma-separated list of strings. Each reference can be associated with another
<a href="#D.Device:2.Device.QoS.Queue."><em>QoS.Queue.{i}</em></a>, <a href="#D.Device:2.Device.QoS.Shaper."><em>QoS.Shaper.{i}</em></a>,
<a href="#D.Device:2.Device.QoS.Scheduler."><em>QoS.Scheduler.{i}</em></a> instance object. The references in
this parameter are used to build a hierarchy.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Queue.CurrentShapingRate">CurrentShapingRate</span></td>
<td>int(-1:)</td>
<td>R</td>
<td>If the Queue is active, the CurrentShapingRate must reflect the
actual configured ShapingRate, in <em>bits per second</em> per second. -1 means no
rate due to do Queue not active.</td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Queue.AssuredRate">AssuredRate</span></td>
<td>int(-1:)</td>
<td>W</td>
<td><p>Minimum rate to shape this queue’s traffic to.</p>

<p>If &lt;= 100, in percent of the rate of the highest rate-constrained
layer over which the packet will travel on egress.</p>

<p>If &gt; 100, in bits per second.</p>

<p>A value of -1 indicates no shaping.</p></td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Queue.CurrentAssuredRate">CurrentAssuredRate</span></td>
<td>int(-1:)</td>
<td>R</td>
<td>If the Queue is active, the CurrentAssuredRate must reflect the
actual configured AssuredRate, in bits per second. -1 means no rate
due to do Queue not active.</td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.QoS.Shaper.">Device.QoS.Shaper.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Shaper table. Used to shape the queue(s) associated with
<a href="#D.Device:2.Device.QoS.Shaper.Interface"><em>Interface</em></a>. In case of a single queue for that interface,
determines the egress rate of the queue. In case of multiple queues for
that interface (possibly with per queue shaping rates), determines the
aggregate egress rate on that interface.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.QoS.Shaper.Interface"><em>Interface</em></a> is not a valid
reference then the table entry is inoperable and the CPE MUST set
<a href="#D.Device:2.Device.QoS.Shaper.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.QoS.Shaper.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Note: The <em>Shaper</em> table includes a unique key parameter that is a
strong reference. If a strongly referenced object is deleted, the CPE
will set the referencing parameter to an empty string. However, doing so
under these circumstances might cause the updated <em>Shaper</em> row to
then violate the table’s unique key constraint; if this occurs, the CPE
MUST set <a href="#D.Device:2.Device.QoS.Shaper.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.QoS.Shaper.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and
disable the offending <em>Shaper</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.Shaper.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.Shaper.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.QoS.Shaper.Interface"><em>Interface</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.QoS.Shaper.Children"><em>Children</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Shaper.Children">Children</span></td>
<td>string[]</td>
<td>W</td>
<td>Each list item MUST be the Path Name of a table row, or an empty string. Comma-separated list of strings. Each reference can be associated with another
<a href="#D.Device:2.Device.QoS.Queue."><em>QoS.Queue.{i}</em></a>, <a href="#D.Device:2.Device.QoS.Shaper."><em>QoS.Shaper.{i}</em></a>,
<a href="#D.Device:2.Device.QoS.Scheduler."><em>QoS.Scheduler.{i}</em></a> instance object. The references in
this parameter are used to build a hierarchy.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.">Device.QoS.Scheduler.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Scheduler table. Each entry is used to model a scheduler object.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.QoS.Scheduler.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.QoS.Scheduler.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables this scheduler.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of this scheduler. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.QoS.Scheduler.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.QoS.Scheduler.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.Device:2.Device.QoS.Scheduler.Status.Error_Misconfigured"><em>Error_Misconfigured</em></span></li>
<li><span id="D.Device:2.Device.QoS.Scheduler.Status.Error"><em>Error</em></span> (OPTIONAL)</li></ul>

<p>The <a href="#D.Device:2.Device.QoS.Scheduler.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> value indicates that a necessary
configuration value is undefined or invalid.</p>

<p>The <a href="#D.Device:2.Device.QoS.Scheduler.Status.Error"><em>Error</em></a> value MAY be used by the CPE to indicate a locally
defined error condition.</p></td>
<td>Disabled</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.Children">Children</span></td>
<td>string[]</td>
<td>W</td>
<td>Each list item MUST be the Path Name of a table row, or an empty string. Comma-separated list of strings. Each reference can be associated with another
<a href="#D.Device:2.Device.QoS.Queue."><em>QoS.Queue.{i}</em></a>, <a href="#D.Device:2.Device.QoS.Shaper."><em>QoS.Shaper.{i}</em></a>,
<a href="#D.Device:2.Device.QoS.Scheduler."><em>QoS.Scheduler.{i}</em></a> instance object. The references in
this parameter are used to build a hierarchy.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a table row. Specifies the egress interface for which the specified
queue MUST exist.</p>

<p>This MAY be a layer 1, 2 or 3 interface, however, the types of
interfaces for which <em>Queues</em> can be instantiated is a local matter
to the CPE.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.SchedulerAlgorithm">SchedulerAlgorithm</span></td>
<td>string</td>
<td>W</td>
<td><p>Scheduling Algorithm used by scheduler.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.QoS.Scheduler.SchedulerAlgorithm.WFQ"><em>WFQ</em></span> (Weighted Fair Queueing)</li>
<li><span id="D.Device:2.Device.QoS.Scheduler.SchedulerAlgorithm.WRR"><em>WRR</em></span> (Weighted Round Robin)</li>
<li><span id="D.Device:2.Device.QoS.Scheduler.SchedulerAlgorithm.SP"><em>SP</em></span> (Strict Priority)</li></ul></td>
<td>SP</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.ShapingRate">ShapingRate</span></td>
<td>int(-1:)</td>
<td>W</td>
<td><p>Rate to shape this scheduler’s traffic to. For leaky bucket (constant
rate shaping), this is the constant rate. For token bucket (variable
rate shaping), this is the average rate.</p>

<p>If &lt;= 100, in percent of the rate of the highest rate-constrained
layer over which the packet will travel on egress.</p>

<p>If &gt; 100, in bits per second.</p>

<p>A value of -1 indicates no shaping.</p></td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.AssuredRate">AssuredRate</span></td>
<td>int(-1:)</td>
<td>W</td>
<td><p>Minimum guaranteed rate to shape this scheduler’s traffic to.</p>

<p>Must be &gt; 0 and &lt; ShapingRate, for a valid rate.</p>

<p>A value of -1 indicates the ShapingRate’s value is not used.</p></td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.QoS.Scheduler.DefaultQueue">DefaultQueue</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a table row. The value MUST be the Path Name for a <a href="#D.Device:2.Device.QoS.Queue."><em>QoS.Queue.{i}</em></a>
instance. If the referenced object is deleted, the parameter value
MUST be set to an empty string.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LANConfigSecurity.">Device.LANConfigSecurity.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains generic device configuration information.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.LANConfigSecurity.ConfigPassword">ConfigPassword</span></td>
<td>string(:64)</td>
<td>W</td>
<td><p>A password to allow LAN access to protected auto-configuration services.</p>

<p>If the CPE supports TR-064 (LAN-side DSL CPE Configuration Protocol), this parameter is to be used as the <em>dslf-config</em> password (as defined in TR-064).</p>

<p>If the CPE has a user interface with password protection enabled, this parameter is also to be used as the user password for password-protected operations. However, this parameter MUST NOT be used to set the user password if the parameter <strong>{{param: non-existent <span class="inserted">#.UserInterface.PasswordUserSelectable</span>}}</strong> is <em>true</em>.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:64)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:64)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Hosts.">Device.Hosts.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object provides information about each of the hosts on the LAN,
including those whose IP address was allocated by the CPE using DHCP as
well as hosts with statically allocated IP addresses. It can also
include non-IP hosts.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Hosts.Host.">Device.Hosts.Host.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Host table.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Hosts.Host.PhysAddress"><em>PhysAddress</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deleted-parameter">
<td><span id="D.Device:2.Device.Hosts.Host.UserClassID">UserClassID</span></td>
<td>hexBinary(:65535)</td>
<td>R</td>
<td><div class="hide">A hexbinary string, User Class Identifier DHCP option (Option 77) of the host.</div>

<div class="hide">It MAY be defined when <a href="#D.Device:2.Device.Hosts.Host.AddressSource"><em>AddressSource</em></a> is <a href="#D.Device:2.Device.Hosts.Host.AddressSource.DHCP"><em>DHCP</em></a>. An empty string indicates this option is not used.</div>

<div class="hide">Note: DHCPv4 Option values are limited to a length of 255, while DHCPv6 Option values can have a maximum length of 65535.</div>

<div class="hide">This parameter was DEPRECATED in 2.11 because host-supplied DHCP options can be accessed via the <a href="#D.Device:2.Device.Hosts.Host.DHCPClient"><em>DHCPClient</em></a> reference.</div>

<div class="hide">This parameter was OBSOLETED in 2.15.</div>

<div class="inserted"><div class="chevron">This parameter was DELETED in 2.16.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>obsoleted</em> ⇒ <em>deleted</em></li></ul></div></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.">Device.DNS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Properties for Domain Name Service (DNS).</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Client.">Device.DNS.Client.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Client properties for Domain Name Service (DNS). The DNS client
resolves FQDN on behalf of device internal (client) applications.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Client.Server.">Device.DNS.Client.Server.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table contains the DNS Server IP address to be used by the DNS
Client (it does <em>not</em> model a DNS Server). Entries are either
automatically created as result of DHCP (v4 or v6), IPCP, or RA
received DNS server information, or are statically configured by the
Controller.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DNS.Client.Server.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DNS.Client.Server.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.DNS.Client.Server.DNSServer"><em>DNSServer</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody>
<tr class="parameter">
<td><span id="D.Device:2.Device.DNS.Client.Server.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This parameter specifies the IP interface over which the DNS query is sent.</p>

<p><span class="removed">If an empty string is specified, the CPE MUST use its routing policy (Forwarding table entries), if necessary, to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div>

<p>Note: <em>Interface</em> is only writable when <a href="#D.Device:2.Device.DNS.Client.Server.Type"><em>Type</em></a> is <a href="#D.Device:2.Device.DNS.Client.Server.Type.Static"><em>Static</em></a>; otherwise, <em>Interface</em> is automatically configured as result of DHCP, IPCP, or RA received DNS server information.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DNS.Client.Server.Type">Type</span></td>
<td>string</td>
<td>R</td>
<td><p>Method used to assign the <a href="#D.Device:2.Device.DNS.Client.Server.DNSServer"><em>DNSServer</em></a> address. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DNS.Client.Server.Type.DHCP"><em>DHCP</em></span> (</li></ul>

<p>This enumeration was OBSOLETED in 2.14 because it’s been replaced by <a href="#D.Device:2.Device.DNS.Client.Server.Type.DHCPv4"><em>DHCPv4</em></a>.</p>

<p><span class="inserted">This enumeration was DELETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>obsoleted</em> ⇒ <em>deleted</em></li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.DNS.Client.Server.Type.DHCPv4"><em>DHCPv4</em></span></li>
<li><span id="D.Device:2.Device.DNS.Client.Server.Type.DHCPv6"><em>DHCPv6</em></span></li>
<li><span id="D.Device:2.Device.DNS.Client.Server.Type.RouterAdvertisement"><em>RouterAdvertisement</em></span></li>
<li><span id="D.Device:2.Device.DNS.Client.Server.Type.IPCP"><em>IPCP</em></span></li>
<li><span id="D.Device:2.Device.DNS.Client.Server.Type.Static"><em>Static</em></span></li></ul>

<p>Table entries that are automatically created as result of DHCP, IPCP,
or RA received DNS server information will have <em>Type</em> set to
<a href="#D.Device:2.Device.DNS.Client.Server.Type.DHCPv4"><em>DHCPv4</em></a>, <a href="#D.Device:2.Device.DNS.Client.Server.Type.DHCPv6"><em>DHCPv6</em></a>, <a href="#D.Device:2.Device.DNS.Client.Server.Type.IPCP"><em>IPCP</em></a>, or
<a href="#D.Device:2.Device.DNS.Client.Server.Type.RouterAdvertisement"><em>RouterAdvertisement</em></a>, as the case may be. Manually created
table entires will have their <em>Type</em> set to <a href="#D.Device:2.Device.DNS.Client.Server.Type.Static"><em>Static</em></a>.</p></td>
<td>Static</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Relay.">Device.DNS.Relay.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>DNS Relay object. The DNS proxy (or relay) function allows the
forwarding of local network DNS queries to local or external DNS
server(s) [<a href="#R.RFC5625">RFC5625</a>].</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Relay.Forwarding.">Device.DNS.Relay.Forwarding.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>DNS Server forwarding policy to be used by the DNS Relay. Entries are
either automatically created as result of DHCP (v4 or v6), IPCP, or RA
received DNS server information, or are statically configured by the
Controller.</p>

<p>Note: Management of re-directing queries to the device embedded DNS
server is not defined in this version of the specification.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.DNS.Relay.Forwarding.DNSServer"><em>DNSServer</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DNS.Relay.Forwarding.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. Specifies the IP interface over which the DNS query is sent.</p>

<p><span class="removed">If an empty string is specified, the CPE MUST use its routing policy (IP Forwarding table entries), if necessary, to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div>

<p>Note: <em>Interface</em> is only writable when <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Type"><em>Type</em></a> is <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Type.Static"><em>Static</em></a>; otherwise, <em>Interface</em> is automatically configured as result of DHCP, IPCP, or RA received DNS server information.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DNS.Relay.Forwarding.Type">Type</span></td>
<td>string</td>
<td>R</td>
<td><p>Method used to assign the <a href="#D.Device:2.Device.DNS.Relay.Forwarding.DNSServer"><em>DNSServer</em></a> address. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DNS.Relay.Forwarding.Type.DHCP"><em>DHCP</em></span> (</li></ul>

<p>This enumeration was OBSOLETED in 2.14 because it’s been replaced by <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Type.DHCPv4"><em>DHCPv4</em></a>.</p>

<p><span class="inserted">This enumeration was DELETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>obsoleted</em> ⇒ <em>deleted</em></li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.DNS.Relay.Forwarding.Type.DHCPv4"><em>DHCPv4</em></span></li>
<li><span id="D.Device:2.Device.DNS.Relay.Forwarding.Type.DHCPv6"><em>DHCPv6</em></span></li>
<li><span id="D.Device:2.Device.DNS.Relay.Forwarding.Type.RouterAdvertisement"><em>RouterAdvertisement</em></span></li>
<li><span id="D.Device:2.Device.DNS.Relay.Forwarding.Type.IPCP"><em>IPCP</em></span></li>
<li><span id="D.Device:2.Device.DNS.Relay.Forwarding.Type.Static"><em>Static</em></span></li></ul>

<p>Table entries that are automatically created as result of DHCP, IPCP,
or RA received DNS server information will have <em>Type</em> set to
<a href="#D.Device:2.Device.DNS.Relay.Forwarding.Type.DHCPv4"><em>DHCPv4</em></a>, <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Type.DHCPv6"><em>DHCPv6</em></a>, <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Type.IPCP"><em>IPCP</em></a>, or
<a href="#D.Device:2.Device.DNS.Relay.Forwarding.Type.RouterAdvertisement"><em>RouterAdvertisement</em></a>, as the case may be. Manually created
table entires will have their <em>Type</em> set to <a href="#D.Device:2.Device.DNS.Relay.Forwarding.Type.Static"><em>Static</em></a>.</p></td>
<td>Static</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Diagnostics.">Device.DNS.Diagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The DNS Diagnostics object containing the
<a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics."><em>NSLookupDiagnostics</em></a> test.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.">Device.DNS.Diagnostics.NSLookupDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object defines access to an IP-layer NS Lookup test for the
specified IP interface.</p>

<p>When initiated, the NS Lookup test will contact <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.DNSServer"><em>DNSServer</em></a> and
look up <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.HostName"><em>HostName</em></a> <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.NumberOfRepetitions"><em>NumberOfRepetitions</em></a> times.</p>

<p>There will be a <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.Result."><em>Result</em></a> instance for each time the device
performs a DNS lookup, which is determined by the value of
<a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.NumberOfRepetitions"><em>NumberOfRepetitions</em></a>.</p>

<p>Any previous <a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.Result."><em>Result</em></a> instances are removed when a new test is
initiated.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a table row. The<span class="removed"> layer 2 or</span> layer 3 interface over which the test is to be performed. Example: <span class="removed"><em>Device.IP.Interface.1</em>, <em>Device.Bridge.1.Port.2</em></span><span class="inserted"><em>Device.IP.Interface.1</em>.</span></p>

<p><span class="removed">If an empty string is specified, the CPE MUST use the interface as directed by its bridging or routing policy (<em>Forwarding</em> table entries) to determine the appropriate interface.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.SD.">Device.DNS.SD.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object contains the DNS Service Discovery [<a href="#R.DNS-SD">DNS-SD</a>] object
and parameters necessary to discover services and their associated
devices.</p>

<p>Upon reboot the the contents of the service table are repopulated. When
the DNS.SD service is disabled, the contents of the service table is
implementation specific.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DNS.SD.Service.">Device.DNS.SD.Service.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The <em>Service</em> table contains discovered DNS-SD services. DNS.SD
service information is provided in DNS RR SRV records
[<a href="#R.RFC2782">RFC2782</a>]. The Service Instance Name [<a href="#R.DNS-SD">Section
4.1 Structured Instance Names/DNS-SD</a>] further specifies information about the
service name (RFC2782 Service field) and domain name (RFC2782 Name
field) in the form:</p>

<p>Service Instance Name = <InstanceName> . <Service> .
<Domain></p>

<p><Service> = _<ApplicationProtocol> .
_<TransportProtocol></p>

<p>RFC2782 Service field will always be equal to <InstanceName>.
<Service></p>

<p>RFC2782 Name field will always be equal to <Domain></p>

<p>For example, an SSH service might have:</p>

<p>*<a href="#D.Device:2.Device.DNS.SD.Service.InstanceName"><em>InstanceName</em></a> = &ldquo;Secure Shell (SSH))&rdquo;</p>

<p>*<a href="#D.Device:2.Device.DNS.SD.Service.ApplicationProtocol"><em>ApplicationProtocol</em></a> = &ldquo;ssh&rdquo;</p>

<p>*<a href="#D.Device:2.Device.DNS.SD.Service.TransportProtocol"><em>TransportProtocol</em></a> = &ldquo;TCP&rdquo;</p>

<p>*<a href="#D.Device:2.Device.DNS.SD.Service.Domain"><em>Domain</em></a> = &ldquo;example.com&rdquo;</p>

<p>*<a href="#D.Device:2.Device.DNS.SD.Service.Port"><em>Port</em></a> = 22</p>

<p>*<a href="#D.Device:2.Device.DNS.SD.Service.Target"><em>Target</em></a> = &ldquo;ssh.example.com.&rdquo;</p>

<p>At most one entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.DNS.SD.Service.InstanceName"><em>InstanceName</em></a>, <a href="#D.Device:2.Device.DNS.SD.Service.ApplicationProtocol"><em>ApplicationProtocol</em></a>, <a href="#D.Device:2.Device.DNS.SD.Service.TransportProtocol"><em>TransportProtocol</em></a> and <a href="#D.Device:2.Device.DNS.SD.Service.Domain"><em>Domain</em></a>.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DNS.SD.Service.Host">Host</span></td>
<td>string(:256)[]</td>
<td>R</td>
<td>Comma-separated list of strings (maximum number of characters per item 256). Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. <span class="removed">Comma-separated list of strings (maximum number of characters per item 256).</span><span class="inserted">Includes</span> <span class="removed">Each list item MUST be the Path Name of </span>all Host table entries, active or inactive, that correspond to this discovered DNS.SD service.<span class="removed"> As such, when entries are added or removed from the Host tables the value of this parameter MUST be updated accordingly. If the referenced object is deleted, the corresponding item MUST be removed from the list.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em><a href=":1024"></a></em> list <em>:1024</em> size</li></ul></div></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.NAT.">Device.NAT.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Properties for Network Address Translation (NAT).</p>

<p>The entire <em>NAT</em> object only applies to IPv4.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.NAT.PortTriggerNumberOfEntries"><em>PortTriggerNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.NAT.PortTrigger."><em>PortTrigger.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTriggerNumberOfEntries">PortTriggerNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.NAT.PortTrigger."><em>PortTrigger</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.NAT.InterfaceSetting.">Device.NAT.InterfaceSetting.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>NAT settings for an associated IP Interface on which NAT is enabled.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.NAT.InterfaceSetting.Interface"><em>Interface</em></a> is not a valid
reference then the table entry is inoperable and the CPE MUST set
<a href="#D.Device:2.Device.NAT.InterfaceSetting.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.NAT.InterfaceSetting.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Note: The <em>InterfaceSetting</em> table includes a unique key parameter that is a
strong reference. If a strongly referenced object is deleted, the CPE
will set the referencing parameter to an empty string. However, doing so
under these circumstances might cause the updated <em>InterfaceSetting</em> row to
then violate the table’s unique key constraint; if this occurs, the CPE
MUST set <a href="#D.Device:2.Device.NAT.InterfaceSetting.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.NAT.InterfaceSetting.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and
disable the offending <em>InterfaceSetting</em> row.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.NAT.InterfaceSetting.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.NAT.InterfaceSetting.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.NAT.InterfaceSetting.Interface"><em>Interface</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.NAT.InterfaceSetting.SourceNetwork"><em>SourceNetwork</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.NAT.InterfaceSetting.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The associated<span class="inserted"> outgoing</span> IP interface on which NAT is to be enabled.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.InterfaceSetting.SourceNetwork">SourceNetwork</span></td>
<td>string(:256)[]</td>
<td>W</td>
<td><p>Comma-separated list of strings (maximum number of characters per item 256). Each list item MUST be the Path name of a
<a href="#D.Device:2.Device.IP.Interface.IPv4Address."><em>IP.Interface.{i}.IPv4Address.</em></a> table or of one of its
rows. If the referenced object is deleted, the corresponding item
MUST be removed from the list.</p>

<p>Specifies the source IPv4 network(s) that MUST be translated for all
outgoing traffic associated with the <a href="#D.Device:2.Device.NAT.InterfaceSetting.Interface"><em>Interface</em></a> (e.g.
<em>Device.IP.Interface.2.IPv4Address.</em> (table) or
<em>Device.IP.Interface.2.IPv4Address.1.</em> (row)).</p>

<p>The <a href="#D.Device:2.Device.IP.Interface.IPv4Address.IPAddress"><em>IP.Interface.{i}.IPv4Address.{i}.IPAddress</em></a> and
<a href="#D.Device:2.Device.IP.Interface.IPv4Address.SubnetMask"><em>IP.Interface.{i}.IPv4Address.{i}.SubnetMask</em></a> are used to
construct an additional filter rule that specifies which address
range needs to be translated.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.NAT.PortMapping.">Device.NAT.PortMapping.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Port mapping table.</p>

<p>This table MUST contain all NAT port mappings associated with this
connection, including static and dynamic port mappings programmatically
created via local control protocol, such as UPnP.</p>

<p>This table MUST NOT contain dynamic NAT binding entries associated with
the normal operation of NAT.</p>

<p>If the CPE hosts a firewall, it is assumed that it will appropriately
configure the firewall for the port mapping.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.NAT.PortMapping.InternalClient"><em>InternalClient</em></a> is an empty string, or
if <a href="#D.Device:2.Device.NAT.PortMapping.Interface"><em>Interface</em></a> is not a valid reference and
<a href="#D.Device:2.Device.NAT.PortMapping.AllInterfaces"><em>AllInterfaces</em></a> is <em>false</em>, then the table entry is
inoperable and the CPE MUST set <a href="#D.Device:2.Device.NAT.PortMapping.Status"><em>Status</em></a> to
<a href="#D.Device:2.Device.NAT.PortMapping.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.NAT.PortMapping.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.NAT.PortMapping.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.NAT.PortMapping.RemoteHost"><em>RemoteHost</em></a>, <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a> and <a href="#D.Device:2.Device.NAT.PortMapping.Protocol"><em>Protocol</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.NAT.PortMapping.RemoteHost">RemoteHost</span></td>
<td>string</td>
<td>W</td>
<td><p>This parameter is the IP address of the source of inbound packets. An empty string indicates a &ldquo;wildcard&rdquo;, i.e. any IP address (this will be an empty string in most cases). CPE are REQUIRED only to support an empty string.</p>

<p>When <em>RemoteHost</em> is an empty string, all traffic sent to the <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a> on the WAN interface of the gateway is forwarded to the <strong>{{object: non-existent <span class="inserted">##.IP.Interface</span>}}</strong> associated with the <a href="#D.Device:2.Device.NAT.PortMapping.InternalClient"><em>InternalClient</em></a> on the <a href="#D.Device:2.Device.NAT.PortMapping.InternalPort"><em>InternalPort</em></a>.</p>

<p>When <em>RemoteHost</em> is specified as one external IP address, the NAT will only forward inbound packets from this <em>RemoteHost</em> to the <a href="#D.Device:2.Device.NAT.PortMapping.InternalClient"><em>InternalClient</em></a>, all other packets will be dropped.</p>

<p>If a CPE supports non-empty values for <em>RemoteHost</em>, it MAY additionally support the ability to have more than one port mapping with the same <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a> and <a href="#D.Device:2.Device.NAT.PortMapping.Protocol"><em>Protocol</em></a>, but with differing values of <em>RemoteHost</em>.</p>

<p>When wildcard values are used for <em>RemoteHost</em> and/or <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a>, the following precedence order applies (with the highest precedence listed first):</p>

<ol>
<li>Explicit <em>RemoteHost</em>, explicit <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a></li>
<li>Explicit <em>RemoteHost</em>, zero <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a></li>
<li>Empty <em>RemoteHost</em>, explicit <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a></li>
<li>Empty <em>RemoteHost</em>, zero <a href="#D.Device:2.Device.NAT.PortMapping.ExternalPort"><em>ExternalPort</em></a></li></ol>

<p>If an incoming packet matches the criteria associated with more than one entry in this table, the CPE MUST apply the port mapping associated with the highest precedence entry.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.NAT.PortMapping.ExternalPort">ExternalPort</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><p>The external port (or the first port of a range of external ports) that the NAT gateway would listen on for traffic to a corresponding <a href="#D.Device:2.Device.NAT.PortMapping.InternalPort"><em>InternalPort</em></a>. Inbound packets to this external port on the WAN interface SHOULD be forwarded to the <strong>{{object: non-existent <span class="inserted">##.IP.Interface</span>}}</strong> associated with the <a href="#D.Device:2.Device.NAT.PortMapping.InternalClient"><em>InternalClient</em></a> on the <a href="#D.Device:2.Device.NAT.PortMapping.InternalPort"><em>InternalPort</em></a>.</p>

<p>A value of zero (0) represents a &ldquo;wildcard&rdquo;, i.e. any port number. If this value is 0, traffic on all external ports (that are not otherwise mapped) will be forwarded to <a href="#D.Device:2.Device.NAT.PortMapping.InternalClient"><em>InternalClient</em></a>, and the value(s) of <a href="#D.Device:2.Device.NAT.PortMapping.InternalPort"><em>InternalPort</em></a> on <a href="#D.Device:2.Device.NAT.PortMapping.InternalClient"><em>InternalClient</em></a> are ignored.</p>

<p>When wildcard values are used for <a href="#D.Device:2.Device.NAT.PortMapping.RemoteHost"><em>RemoteHost</em></a> and/or <em>ExternalPort</em>, the following precedence order applies (with the highest precedence listed first):</p>

<ol>
<li>Explicit <a href="#D.Device:2.Device.NAT.PortMapping.RemoteHost"><em>RemoteHost</em></a>, explicit <em>ExternalPort</em></li>
<li>Explicit <a href="#D.Device:2.Device.NAT.PortMapping.RemoteHost"><em>RemoteHost</em></a>, zero <em>ExternalPort</em></li>
<li>Empty <a href="#D.Device:2.Device.NAT.PortMapping.RemoteHost"><em>RemoteHost</em></a>, explicit <em>ExternalPort</em></li>
<li>Empty <a href="#D.Device:2.Device.NAT.PortMapping.RemoteHost"><em>RemoteHost</em></a>, zero <em>ExternalPort</em></li></ol>

<p>If an incoming packet matches the criteria associated with more than one entry in this table, the CPE MUST apply the port mapping associated with the highest precedence entry.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.NAT.PortMapping.InternalClient">InternalClient</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The IP address or DNS host name of an internal client (on the LAN).</p>

<p>Support for an IP address is mandatory. If <em>InternalClient</em> is specified as an IP address and the LAN device’s IP address subsequently changes, the port mapping MUST remain associated with the original IP address.</p>

<p>Support for DNS host names is OPTIONAL. If <em>InternalClient</em> is specified as a DNS host name and the LAN device’s IP address subsequently changes, the port mapping MUST remain associated with this LAN device. In this case, it is the responsibility of the CPE to maintain the name-to-address mapping in the event of IP address changes. This can be accomplished, for example, by assigning the DNS host name via use of DHCP option 12 (Host Name) or option 81 (FQDN). Note that the Controller can learn the host name associated with a given LAN device via the <strong>{{object: non-existent <span class="inserted">##.Hosts.Host</span>}}</strong> table.</p>

<p>Read access to this parameter MUST always return the exact value that was last set by the Controller. For example, if the internal client is set to a DNS host name, it MUST read back as a DNS host name and not as an IP address.</p>

<p>It MUST be possible to set the <em>InternalClient</em> to the broadcast IP address 255.255.255.255 for UDP mappings. This is to enable multiple NAT clients to use the same well-known port simultaneously.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.">Device.NAT.PortTrigger.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall PortTrigger table.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.NAT.PortTrigger.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.NAT.PortTrigger.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the Port Trigger</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of this <a href="#D.Device:2.Device.NAT.PortTrigger."><em>PortTrigger</em></a> entry.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Status.Disabled"><em>Disabled</em></span> (Indicates that the PortTrigger entry is disabled)</li>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Status.Enabled"><em>Enabled</em></span> (Indicates that the PortTrigger entry is enabled)</li>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Status.Error_Misconfigured"><em>Error_Misconfigured</em></span> (Indicates that a necessary configuration value is undefined or invalid)</li>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Status.Error"><em>Error</em></span> (MAY be used to define an error condition, OPTIONAL)</li></ul></td>
<td>Disabled</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Origin">Origin</span></td>
<td>string</td>
<td>W</td>
<td><p>Indicates the owner of the <a href="#D.Device:2.Device.NAT.PortTrigger."><em>PortTrigger</em></a> instance.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Origin.User"><em>User</em></span> (Used for indicating that the PortTrigger entry was created by the end-user. For example through the web-ui)</li>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Origin.System"><em>System</em></span> (Used for indicating that the PortTrigger entry was created by the system itself)</li>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Origin.Controller"><em>Controller</em></span> (Used for indicating that the PortTrigger entry was created by a Controller)</li></ul></td>
<td>Controller</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Description">Description</span></td>
<td>string(:256)</td>
<td>W</td>
<td>Human-readable description associated with this <a href="#D.Device:2.Device.NAT.PortTrigger."><em>PortTrigger</em></a> entry.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. Specifies the incoming L3 interface to which this port trigger
applies. Typically this will be the LAN interface.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Port">Port</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td>Trigger Port, the port number which is used to start the port trigger
rule.</td>
<td>0</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.PortEndRange">PortEndRange</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><p>Indicates the last port of the port range that starts with
<a href="#D.Device:2.Device.NAT.PortTrigger.Port"><em>Port</em></a> which is used to start the port trigger rule.</p>

<p>A value of zero (0) indicates that no port range is specified, i.e.
that the range consists only of <a href="#D.Device:2.Device.NAT.PortTrigger.Port"><em>Port</em></a>.</p>

<p>If <a href="#D.Device:2.Device.NAT.PortTrigger.Port"><em>Port</em></a> is zero, the value of this parameter MUST be
ignored.</p>

<p>If specified, the value of this parameter MUST be greater than or
equal to the value of <a href="#D.Device:2.Device.NAT.PortTrigger.Port"><em>Port</em></a>.</p></td>
<td>0</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.AutoDisableDuration">AutoDisableDuration</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Number of <em>seconds</em> the port trigger MUST be active. When the
<em>AutoDisableDuration</em> is expired new connections are no longer allowed, active
connections SHOULD not be terminated.</td>
<td>0</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.ActivationDate">ActivationDate</span></td>
<td>dateTime</td>
<td>W</td>
<td>Indicates when the port trigger was enabled. When the port trigger is
no longer active.</td>
<td>0001-01-01T00:00:00Z</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Protocol">Protocol</span></td>
<td>string</td>
<td>W</td>
<td><p>The protocol of the trigger port.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Protocol.TCP"><em>TCP</em></span></li>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Protocol.UDP"><em>UDP</em></span></li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.RuleNumberOfEntries">RuleNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.NAT.PortTrigger.Rule."><em>Rule</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Rule.">Device.NAT.PortTrigger.{i}.Rule.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall PortTrigger Rule table.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.NAT.PortTrigger.Rule.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.NAT.PortTrigger.Rule.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Rule.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Rule.Port">Port</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td>Port (or the first port of a range of ports) which needs to be opened
when the Trigger conditions are met.</td>
<td>0</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Rule.PortEndRange">PortEndRange</span></td>
<td>unsignedInt(0:65535)</td>
<td>W</td>
<td><p>Indicates the last port of the port range that starts with
<a href="#D.Device:2.Device.NAT.PortTrigger.Rule.Port"><em>Port</em></a> which needs to be opened when the Trigger conditions
are met.</p>

<p>A value of zero (0) indicates that no port range is specified, i.e.
that the range consists only of <a href="#D.Device:2.Device.NAT.PortTrigger.Rule.Port"><em>Port</em></a>.</p>

<p>If <a href="#D.Device:2.Device.NAT.PortTrigger.Rule.Port"><em>Port</em></a> is zero, the value of this parameter MUST be
ignored.</p>

<p>If specified, the value of this parameter MUST be greater than or
equal to the value of <a href="#D.Device:2.Device.NAT.PortTrigger.Rule.Port"><em>Port</em></a>.</p></td>
<td>0</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.NAT.PortTrigger.Rule.Protocol">Protocol</span></td>
<td>string</td>
<td>W</td>
<td><p>The protocol of the to be forwarded port.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Rule.Protocol.TCP"><em>TCP</em></span></li>
<li><span id="D.Device:2.Device.NAT.PortTrigger.Rule.Protocol.UDP"><em>UDP</em></span></li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PCP.">Device.PCP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Properties for Port Control Protocol (PCP) [<a href="#R.RFC6887">RFC6887</a>].</p>

<p>See the PCP Theory of Operation [<a href="#R.TR-181i2">Appendix XIV/TR-181i2</a>] for a
description of the working of this PCP data model.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.PCP.Enable"><em>Enable</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.PCP.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the PCP stack. If the stack is disabled then the
status of any enabled <a href="#D.Device:2.Device.PCP.Client."><em>Client</em></a> entries will change to
<a href="#D.Device:2.Device.PCP.Client.Status.StackDisabled"><em>StackDisabled</em></a>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PCP.Client.">Device.PCP.Client.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Client properties for Port Control Protocol (PCP). The PCP Client
interacts with a PCP Server as defined in [<a href="#R.RFC6887">RFC6887</a>] for
internal device applications or LAN device applications via
Interworking functions.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PCP.Client.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PCP.Client.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.PCP.Client.WANInterface"><em>WANInterface</em></a>.</p></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PCP.Client.WANInterface">WANInterface</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of the interface stack instance representing the WAN interface this client operates on. If the referenced object is deleted, the parameter value MUST be set to an empty string. See <strong>{{object: non-existent <span class="inserted">##.InterfaceStack</span>}}</strong></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PCP.Client.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of the PCP Client. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PCP.Client.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.PCP.Client.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.Device:2.Device.PCP.Client.Status.StackDisabled"><em>StackDisabled</em></span> (Added in 2.16)</li>
<li><span id="D.Device:2.Device.PCP.Client.Status.Error"><em>Error</em></span> (OPTIONAL)</li></ul>

<p>The <a href="#D.Device:2.Device.PCP.Client.Status.Error"><em>Error</em></a> value MAY be used by the CPE to indicate a locally
defined error condition.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>StackDisabled</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.8</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv4.">Device.DHCPv4.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The Dynamic Host Configuration Protocol (DHCP) IPv4 object
[<a href="#R.RFC2131">RFC2131</a>]. This entire object applies to IPv4 only. It
contains the <a href="#D.Device:2.Device.DHCPv4.Client."><em>Client</em></a>, <a href="#D.Device:2.Device.DHCPv4.Server."><em>Server</em></a>, and <a href="#D.Device:2.Device.DHCPv4.Relay."><em>Relay</em></a>
objects.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv4.Server.">Device.DHCPv4.Server.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>DHCP server configuration.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.">Device.DHCPv4.Server.Pool.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>DHCP conditional serving pool table.</p>

<p>Each instance of this object defines a DHCP conditional serving pool.
Client requests are associated with pools based on criteria such as
source interface, supplied DHCP options, and MAC address.</p>

<p>Overlapping pool ranges MUST be supported.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Interface"><em>Interface</em></a> is not a valid
reference, or <a href="#D.Device:2.Device.DHCPv4.Server.Pool.MinAddress"><em>MinAddress</em></a>, <a href="#D.Device:2.Device.DHCPv4.Server.Pool.MaxAddress"><em>MaxAddress</em></a>, or
<a href="#D.Device:2.Device.DHCPv4.Server.Pool.SubnetMask"><em>SubnetMask</em></a> is not a valid value, then the table entry is
inoperable and the CPE MUST set <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Status"><em>Status</em></a> to
<a href="#D.Device:2.Device.DHCPv4.Server.Pool.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Order"><em>Order</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices">AllowedDevices</span></td>
<td>string</td>
<td>W</td>
<td><p>Pool association criterion. Determines which devices are allowed,
Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices.All"><em>All</em></span> (All clients are served)</li>
<li><span id="D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices.Known"><em>Known</em></span> (Only clients, whose MAC address is listed in the <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Client."><em>Client.{i}.</em></a> table (parameter <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Client.Chaddr"><em>Client.{i}.Chaddr</em></a>) or in the <a href="#D.Device:2.Device.DHCPv4.Server.Pool.StaticAddress."><em>StaticAddress.{i}.</em></a> table (parameter <a href="#D.Device:2.Device.DHCPv4.Server.Pool.StaticAddress.Chaddr"><em>StaticAddress.{i}.Chaddr</em></a>) are served. The parameter <strong>{{param: non-existent <span class="inserted">Chaddr</span>}}</strong> is not used, if this value is set)</li>
<li><span id="D.Device:2.Device.DHCPv4.Server.Pool.AllowedDevices.Unknown"><em>Unknown</em></span> (Only clients, whose MAC address is <strong>not</strong> listed in the <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Client."><em>Client.{i}.</em></a> table (parameter <a href="#D.Device:2.Device.DHCPv4.Server.Pool.Client.Chaddr"><em>Client.{i}.Chaddr</em></a>) or in the <a href="#D.Device:2.Device.DHCPv4.Server.Pool.StaticAddress."><em>StaticAddress.{i}.</em></a> table (parameter <a href="#D.Device:2.Device.DHCPv4.Server.Pool.StaticAddress.Chaddr"><em>StaticAddress.{i}.Chaddr</em></a>) are served)</li></ul></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.MinAddress">MinAddress</span></td>
<td><span title="IPv4Address">string(:45)</span></td>
<td>W</td>
<td><p>[<a href="#T.IPv4Address">IPv4Address</a>] Specifies first IPv4 address in the pool to be assigned by the DHCP server on the LAN interface.</p>

<p>The parameter value can be overwritten by dynamic values retrieved via a DHCP client with <a href="#D.Device:2.Device.DHCPv4.Client.PassthroughEnable"><em>Client.{i}.PassthroughEnable</em></a> or a PPP interface with <strong>{{param: non-existent <span class="inserted">###.PPP.Interface.{i}.IPCP.PassthroughEnable</span>}}</strong> equal to <em>true</em>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.MaxAddress">MaxAddress</span></td>
<td><span title="IPv4Address">string(:45)</span></td>
<td>W</td>
<td><p>[<a href="#T.IPv4Address">IPv4Address</a>] Specifies last IPv4 address in the pool to be assigned by the DHCP server on the LAN interface.</p>

<p>The parameter value can be overwritten by dynamic values retrieved via a DHCP client with <a href="#D.Device:2.Device.DHCPv4.Client.PassthroughEnable"><em>Client.{i}.PassthroughEnable</em></a> or a PPP interface with <strong>{{param: non-existent <span class="inserted">###.PPP.Interface.{i}.IPCP.PassthroughEnable</span>}}</strong> equal to <em>true</em>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.SubnetMask">SubnetMask</span></td>
<td><span title="IPv4Address">string(:45)</span></td>
<td>W</td>
<td><p>[<a href="#T.IPv4Address">IPv4Address</a>] Specifies the client’s network subnet mask.</p>

<p>The parameter value can be overwritten by dynamic values retrieved via a DHCP client with <a href="#D.Device:2.Device.DHCPv4.Client.PassthroughEnable"><em>Client.{i}.PassthroughEnable</em></a> or a PPP interface with <strong>{{param: non-existent <span class="inserted">###.PPP.Interface.{i}.IPCP.PassthroughEnable</span>}}</strong> equal to <em>true</em>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.DNSServers">DNSServers</span></td>
<td><span title="IPv4Address[:4]()">string(:45)[:4]()</span></td>
<td>W</td>
<td><p>[<a href="#T.IPv4Address">IPv4Address</a>] Comma-separated list (up to 4 items) (length ) of IPv4Addresses. List items represent DNS servers offered to DHCP clients. Support for more than three DNS Servers is OPTIONAL.</p>

<p>The parameter value can be overwritten by dynamic values retrieved via a DHCP client with <a href="#D.Device:2.Device.DHCPv4.Client.PassthroughEnable"><em>Client.{i}.PassthroughEnable</em></a> or a PPP interface with <strong>{{param: non-existent <span class="inserted">###.PPP.Interface.{i}.IPCP.PassthroughEnable</span>}}</strong> equal to <em>true</em>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv4.Server.Pool.IPRouters">IPRouters</span></td>
<td><span title="IPv4Address[:4]()">string(:45)[:4]()</span></td>
<td>W</td>
<td><p>[<a href="#T.IPv4Address">IPv4Address</a>] Comma-separated list (up to 4 items) (length ) of IPv4Addresses. List items represent addresses of routers on this subnet. Also known as default gateway. Support for more than one Router address is OPTIONAL.</p>

<p>The parameter value can be overwritten by dynamic values retrieved via a DHCP client with <a href="#D.Device:2.Device.DHCPv4.Client.PassthroughEnable"><em>Client.{i}.PassthroughEnable</em></a> or a PPP interface with <strong>{{param: non-existent <span class="inserted">###.PPP.Interface.{i}.IPCP.PassthroughEnable</span>}}</strong> equal to <em>true</em>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv6.">Device.DHCPv6.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The Dynamic Host Configuration Protocol (DHCP) IPv6 object
[<a href="#R.RFC3315">RFC3315</a>]. This entire object applies to IPv6 only. It
contains the <a href="#D.Device:2.Device.DHCPv6.Client."><em>Client</em></a> and <a href="#D.Device:2.Device.DHCPv6.Server."><em>Server</em></a> objects.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv6.Server.">Device.DHCPv6.Server.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>DHCPv6 server configuration.</td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DHCPv6.Server.Pool.">Device.DHCPv6.Server.Pool.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>DHCPv6 server pool table.</p>

<p>Each instance of this object defines a DHCPv6 server pool. Client
requests are associated with pools based on criteria such as source
interface, supplied DHCPv6 options, and source address.</p>

<p>Overlapping pool ranges MUST be supported.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Interface"><em>Interface</em></a> is not a valid
reference to an IPv6-capable interface (that is attached to the IPv6
stack) then the table entry is inoperable and the CPE MUST set
<a href="#D.Device:2.Device.DHCPv6.Server.Pool.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Order"><em>Order</em></a>.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv6.Server.Pool.IANAManualPrefixes">IANAManualPrefixes</span></td>
<td>string[:8]()</td>
<td>W</td>
<td><p>Comma-separated list (up to 8 items) (length ) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IP.Interface.{i}.IPv6Prefix.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list.</p>

<p>Manually-configured prefixes from which IA_NA addresses will be assigned. Each referenced prefix MUST have a <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong> of <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong> or <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong>. All clients that request IA_NA and match filter criteria on this <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Interface"><em>Interface</em></a> MUST be offered IA_NA addresses from all of the <em>Valid</em> (<strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime</span>}}</strong> is infinite or in the future) /64 prefixes in this list.</p>

<p>Prefixes MUST be associated with the interface instance referenced by <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Interface"><em>Interface</em></a>.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv6.Server.Pool.IANAPrefixes">IANAPrefixes</span></td>
<td>string[:8]()</td>
<td>R</td>
<td><p>Comma-separated list (up to 8 items) (length ) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IP.Interface.{i}.IPv6Prefix.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list.</p>

<p>All prefixes from which IA_NA addresses will be assigned. This list can include:</p>

<ul>
<li>Prefixes from <a href="#D.Device:2.Device.DHCPv6.Server.Pool.IANAManualPrefixes"><em>IANAManualPrefixes</em></a> that are used for IA_NA offers.</li>
<li>Prefixes with <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> = <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> or <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> associated with the interface instance referenced by <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Interface"><em>Interface</em></a>.</li></ul></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv6.Server.Pool.IAPDManualPrefixes">IAPDManualPrefixes</span></td>
<td>string[:8]()</td>
<td>W</td>
<td><p>Comma-separated list (up to 8 items) (length ) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IP.Interface.{i}.IPv6Prefix.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list.</p>

<p>Manually-configured prefixes from which IA_PD prefixes will be derived. This list can include:</p>

<ul>
<li>Prefixes with <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> = <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> or <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> associated with upstream interfaces (i.e. interfaces for which the physical layer interface object has <em>Upstream</em> = <em>true</em>).</li>
<li>Prefixes with <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong> = <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong> or <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.StaticType</span>}}</strong> associated with with the interface instance referenced by <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Interface"><em>Interface</em></a>.</li></ul>

<p>All clients that request IA_PD and match filter criteria on this <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Interface"><em>Interface</em></a> MUST be offered IA_PD prefixes derived from all of the <em>Valid</em> (<strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.ValidLifetime</span>}}</strong> is infinite or in the future) prefixes in this list.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DHCPv6.Server.Pool.IAPDPrefixes">IAPDPrefixes</span></td>
<td>string[:8]()</td>
<td>R</td>
<td><p>Comma-separated list (up to 8 items) (length ) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface.IPv6Prefix."><em>IP.Interface.{i}.IPv6Prefix.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list.</p>

<p>All prefixes for which IA_PD prefixes will be assigned. This list can include:</p>

<ul>
<li>Prefixes from <a href="#D.Device:2.Device.DHCPv6.Server.Pool.IAPDManualPrefixes"><em>IAPDManualPrefixes</em></a> that are used for IA_PD offers.</li>
<li>Prefixes with <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> = <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> or <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> associated with upstream interfaces (i.e. interfaces for which the physical layer interface object has <em>Upstream</em> = <em>true</em>).</li>
<li>Prefixes with <strong>{{param: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> = <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> or <strong>{{enum: non-existent <span class="inserted">###.IP.Interface.{i}.IPv6Prefix.{i}.Origin</span>}}</strong> associated with the interface instance referenced by <a href="#D.Device:2.Device.DHCPv6.Server.Pool.Interface"><em>Interface</em></a>.</li></ul></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE8021x.">Device.IEEE8021x.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>IEEE 802.1x object [<a href="#R.802.1x-2004">802.1x-2004</a>], where <a href="#D.Device:2.Device.IEEE8021x.Supplicant."><em>Supplicant</em></a>
models authentication supplicants.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE8021x.Supplicant.">Device.IEEE8021x.Supplicant.{i}.</span></td>
<td><span title="object(1:∞)">object(1:)</span></td>
<td>W</td>
<td><p>802.1x supplicant authentication provisioning and status information associated with an interface to be authenticated (e.g. an <strong>{{object: non-existent <span class="inserted">##.Ethernet.Link</span>}}</strong> instance).</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.IEEE8021x.Supplicant.Interface"><em>Interface</em></a> is not a valid reference then the table entry is inoperable and the CPE MUST set <a href="#D.Device:2.Device.IEEE8021x.Supplicant.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.IEEE8021x.Supplicant.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>Note: The <em>Supplicant</em> table includes a unique key parameter that is a strong reference. If a strongly referenced object is deleted, the CPE will set the referencing parameter to an empty string. However, doing so under these circumstances might cause the updated <em>Supplicant</em> row to then violate the table’s unique key constraint; if this occurs, the CPE MUST set <a href="#D.Device:2.Device.IEEE8021x.Supplicant.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.IEEE8021x.Supplicant.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> and disable the offending <em>Supplicant</em> row.</p>

<p>This table MUST contain at least 1 entry.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.IEEE8021x.Supplicant.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.IEEE8021x.Supplicant.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.IEEE8021x.Supplicant.Interface"><em>Interface</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE8021x.Supplicant.EAPMD5.">Device.IEEE8021x.Supplicant.{i}.EAPMD5.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>802.1x Authentication Supplicant provisioning information used for MD5
shared secret exchange. This object will not exist if EAP-MD5 is not a
supported authentication type.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IEEE8021x.Supplicant.EAPMD5.SharedSecret">SharedSecret</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The shared secret to be exchanged between the supplicant and
authenticator.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Users.">Device.Users.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Users object that contains the <a href="#D.Device:2.Device.Users.User."><em>User</em></a>, <a href="#D.Device:2.Device.Users.Group."><em>Group</em></a>, and
<a href="#D.Device:2.Device.Users.Role."><em>Role</em></a> tables.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Users.User.">Device.Users.User.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object contains parameters relating to the user characteristics.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Users.User.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Users.User.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.Users.User.Username"><em>Username</em></a>, or with a given value for <a href="#D.Device:2.Device.Users.User.UserID"><em>UserID</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.Users.User.RemoteAccessCapable">RemoteAccessCapable</span></td>
<td>boolean</td>
<td>W</td>
<td><div class="hide">Allows this user to remotely access the UserInterface via the mechanism defined in <strong>{{object: non-existent <span class="inserted">##.UserInterface.HTTPAccess</span>}}</strong></div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> due to the introduction of <a href="#D.Device:2.Device.UserInterface.HTTPAccess."><em>UserInterface.HTTPAccess.{i}.</em></a> and <a href="#D.Device:2.Device.Users.User.RoleParticipation"><em>RoleParticipation</em></a></span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td>false</td>
<td>2.0</td></tr></tbody>
<tbody>
<tr class="parameter">
<td><span id="D.Device:2.Device.Users.User.Password">Password</span></td>
<td>string(:64)</td>
<td>W</td>
<td><p>The user’s password.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:64)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:64)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Users.User.Language">Language</span></td>
<td>string(:16)</td>
<td>W</td>
<td><p>String describing the default language for the local configuration interface, specified according to [<a href="#R.RFC3066">RFC3066</a>].</p>

<p>If an empty string, <strong>{{param: non-existent <span class="inserted">##.UserInterface.CurrentLanguage</span>}}</strong> is used.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Users.SupportedShell.">Device.Users.SupportedShell.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This table provides a list of user accessible shells which can be used as a reference in <strong>{{param: non-existent <span class="inserted">#.User.{i}.Shell</span>}}</strong></p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Users.SupportedShell.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Users.SupportedShell.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.Users.SupportedShell.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPnP.">Device.UPnP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains all UPnP related objects and parameters including
Device and Discovery related objects and parameters.</td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPnP.Discovery.">Device.UPnP.Discovery.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>UPnP [<a href="#R.UPnP-DAv1">UPnP-DAv1</a>] SSDP discovered root devices, embedded
devices and embedded services.</p>

<p>The CPE MAY, but need not, retain some or all of the information in
this object across reboots.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPnP.Discovery.RootDevice.">Device.UPnP.Discovery.RootDevice.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>UPnP root device table. This table contains an entry for each UPnP root
device that has been discovered via SSDP.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.UPnP.Discovery.RootDevice.UUID"><em>UUID</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UPnP.Discovery.RootDevice.Host">Host</span></td>
<td>string(:256)[]</td>
<td>R</td>
<td>Comma-separated list of strings (maximum number of characters per item 256). Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. <span class="removed">Comma-separated list of strings (maximum number of characters per item 256). </span>Indicates the full path names of all Host table entries, whether active or inactive, that correspond to this UPnP root device.<span class="removed">As such entries are added to or removed from the Host tables, the value of this parameter MUST be updated accordingly.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em><a href=":1024"></a></em> list <em>:1024</em> size</li>
<li>Added string <em>###.Hosts.Host.</em> pathRef</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPnP.Discovery.Device.">Device.UPnP.Discovery.Device.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>UPnP embedded device table. This table contains an entry for each UPnP
embedded device that has been discovered via SSDP.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.UPnP.Discovery.Device.UUID"><em>UUID</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UPnP.Discovery.Device.Host">Host</span></td>
<td>string(:256)[:1024]</td>
<td>R</td>
<td>Comma-separated list (up to 1024 items) of strings (maximum number of characters per item 256). Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. <span class="removed">Comma-separated list (up to 1024 items) of strings (maximum number of characters per item 256). </span>Indicates the full path names of all Host table entries, whether active or inactive, that correspond to this UPnP embedded device.<span class="removed">As such entries are added to or removed from the Host tables, the value of this parameter MUST be updated accordingly.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>[:1024]</em> list maxItems = <em>1024</em></li>
<li>Removed <em><a href=":1024"></a></em> list <em>:1024</em> size</li>
<li>Added string <em>###.Hosts.Host.</em> pathRef</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPnP.Discovery.Service.">Device.UPnP.Discovery.Service.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>UPnP embedded service table. This table contains an entry for each UPnP
embedded service that has been discovered via SSDP.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.UPnP.Discovery.Service.USN"><em>USN</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UPnP.Discovery.Service.Host">Host</span></td>
<td>string(:256)[:1024]</td>
<td>R</td>
<td>Comma-separated list (up to 1024 items) of strings (maximum number of characters per item 256). Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. <span class="removed">Comma-separated list (up to 1024 items) of strings (maximum number of characters per item 256). </span>Indicates the full path names of all Host table entries, whether active or inactive, that correspond to this UPnP embedded service.<span class="removed">As such entries are added to or removed from the Host tables, the value of this parameter MUST be updated accordingly.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>[:1024]</em> list maxItems = <em>1024</em></li>
<li>Removed <em><a href=":1024"></a></em> list <em>:1024</em> size</li>
<li>Added string <em>###.Hosts.Host.</em> pathRef</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPnP.Description.">Device.UPnP.Description.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains information from the Description Document
discovered from the UPnP Devices and Services.</td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.UPnP.Description.DeviceDescription.">Device.UPnP.Description.DeviceDescription.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This table contains information read from the Device Description
Document of discovered root devices.</p>

<p>The CPE MAY, but need not, retain some or all of the information in
this table after the associated SSDP advertisement (objects in the
UPnP.Discovery. object tables) expires.</p>

<p>In case the SSDP advertisement expires and the CPE deletes the related
instances from the tables in UPnP.Discovery., the reference to such
instances MUST be set to the empty string.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.UPnP.Description.DeviceDescription.URLBase"><em>URLBase</em></a>.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.UPnP.Description.DeviceDescription.Host">Host</span></td>
<td>string(:256)[:1024]</td>
<td>R</td>
<td>Comma-separated list (up to 1024 items) of strings (maximum number of characters per item 256). Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. <span class="removed">Comma-separated list (up to 1024 items) of strings (maximum number of characters per item 256).</span><span class="inserted">Includes</span> <span class="removed">Each list item MUST be the Path Name of </span>the Host table entries associated with the root device from which the device description was <span class="removed">retrieved. If the referenced object is deleted, the corresponding item MUST be removed from the list.</span><span class="inserted">retrieved.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>[:1024]</em> list maxItems = <em>1024</em></li>
<li>Removed <em><a href=":1024"></a></em> list <em>:1024</em> size</li></ul></div></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Firewall.">Device.Firewall.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Firewall configuration object. The <a href="#D.Device:2.Device.Firewall.Config"><em>Config</em></a> parameter enables and disables the Firewall, and can select either a predefined configuration (<a href="#D.Device:2.Device.Firewall.Config.High"><em>High</em></a> or <a href="#D.Device:2.Device.Firewall.Config.Low"><em>Low</em></a>) or an explicitly-defined <a href="#D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></a> configuration.</p>

<p>For an <a href="#D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></a> configuration, <a href="#D.Device:2.Device.Firewall.AdvancedLevel"><em>AdvancedLevel</em></a> controls the currently active Firewall Level, and the Firewall Levels are defined in the <a href="#D.Device:2.Device.Firewall.Level."><em>Level</em></a>, <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a> and <a href="#D.Device:2.Device.Firewall.Chain.Rule."><em>Chain.{i}.Rule</em></a> tables.</p>

<p><span class="inserted">For an <a href="#D.Device:2.Device.Firewall.Config.Policy"><em>Policy</em></a> configuration, <a href="#D.Device:2.Device.Firewall.PolicyLevel"><em>PolicyLevel</em></a> controls the currently active Firewall Level, and the Firewall Levels are defined in the <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy</em></a>, <a href="#D.Device:2.Device.Firewall.Level."><em>Level</em></a>, <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a> and <a href="#D.Device:2.Device.Firewall.Chain.Rule."><em>Chain.{i}.Rule</em></a> tables.</span>The Firewall rules modeled by <span class="removed">this</span><span class="inserted"><a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a>, <a href="#D.Device:2.Device.Firewall.DMZ."><em>DMZ</em></a> and <a href="#D.Device:2.Device.Firewall.Pinhole."><em>Pinhole</em></a> operate only on the forwarding path. This means that they affect only routed traffic, and do not affect traffic that is destined for or generated by the device itself.</span></p>

<p>Traffic destined for or generated by the device itself can use the <a href="#D.Device:2.Device.Firewall.Service."><em>Service</em></a> object <span class="removed">operate only on the forwarding path. This means that they affect only routed traffic, and do not affect traffic that is destined for or generated by the CPE. </span><span class="inserted">to model the appropriate Firewall rules.</span>Note that any <a href="#D.Device:2.Device.NAT."><em>NAT</em></a> processing on the ingress packet occurs before Firewall rules are applied so, for example, the Firewall rules will see the translated destination IP address and port in a downstream packet that has passed through the NAT.</p>

<p>See [<a href="#R.TR-181i2">Appendix VIII/TR-181i2</a>] for an example <a href="#D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></a> configuration.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Firewall.PolicyLevel"><em>PolicyLevel</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Firewall.DMZNumberOfEntries"><em>DMZNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Firewall.ServiceNumberOfEntries"><em>ServiceNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Firewall.PinholeNumberOfEntries"><em>PinholeNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Firewall.PolicyNumberOfEntries"><em>PolicyNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Firewall.Pinhole."><em>Pinhole.{i}.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.Firewall.DMZ."><em>DMZ.{i}.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.Firewall.Service."><em>Service.{i}.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Firewall.Config">Config</span></td>
<td>string</td>
<td>W</td>
<td><p>How this firewall is configured. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Config.High"><em>High</em></span> (The firewall implements the &ldquo;Traffic Denied Inbound&rdquo; and &ldquo;Minimally Permit Common Services Outbound&rdquo; components of the ICSA residential certification’s Required Services Security Policy [<a href="#R.ICSA-Residential">ICSA-Residential</a>]. If DoS and vulnerability protections are implemented [<a href="#R.ICSA-Baseline">ICSA-Baseline</a>], these are enabled)</li>
<li><span id="D.Device:2.Device.Firewall.Config.Low"><em>Low</em></span> (All Outbound traffic and pinhole-defined Inbound traffic is allowed. If DoS and vulnerability protections are implemented [<a href="#R.ICSA-Baseline">ICSA-Baseline</a>], these are enabled)</li>
<li><span id="D.Device:2.Device.Firewall.Config.Off"><em>Off</em></span> (</li></ul>

<p>All Inbound and Outbound traffic is allowed, and the CPE is only protected by NAT settings (if supported and enabled). If DoS and vulnerability protections are implemented [<a href="#R.ICSA-Baseline">ICSA-Baseline</a>], these are disabled.</p>

<p>This enumeration was OBSOLETED in 2.14 because it is the same as setting <a href="#D.Device:2.Device.Firewall.Enable"><em>Enable</em></a> to <em>false</em>.</p>

<p><span class="inserted">This enumeration was DELETED in 2.16.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>obsoleted</em> ⇒ <em>deleted</em></li></ul></div>

<p>)</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></span> (Advanced firewall configuration applies, as specified by <a href="#D.Device:2.Device.Firewall.AdvancedLevel"><em>AdvancedLevel</em></a>, OPTIONAL)</li>
<li><span id="D.Device:2.Device.Firewall.Config.Policy"><em>Policy</em></span> (Policy firewall configuration applies, as specified by <a href="#D.Device:2.Device.Firewall.PolicyLevel"><em>PolicyLevel</em></a>, OPTIONAL, added in 2.16)</li></ul>

<p>Vendors can extend the enumerated values with vendor specific
extensions, in which case the rules outlined in
[<a href="#R.TR-106">Section 3.3/TR-106</a>] MUST be adhered to.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>Policy</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.PolicyLevel">PolicyLevel</span></td>
<td>string</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Firewall.Level."><em>Level.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. Selects the currently active Firewall Policy Level.</p>

<p><em>PolicyLevel</em> only applies when <a href="#D.Device:2.Device.Firewall.Config"><em>Config</em></a> is
<a href="#D.Device:2.Device.Firewall.Config.Policy"><em>Policy</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZNumberOfEntries">DMZNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.Firewall.DMZ."><em>DMZ</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.ServiceNumberOfEntries">ServiceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.Firewall.Service."><em>Service</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.PinholeNumberOfEntries">PinholeNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.Firewall.Pinhole."><em>Pinhole</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.PolicyNumberOfEntries">PolicyNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Firewall.Level.">Device.Firewall.Level.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall Level table. When an <a href="#D.Device:2.Device.Firewall.Config.Advanced"><em>Advanced</em></a> <span class="inserted">or <a href="#D.Device:2.Device.Firewall.Config.Policy"><em>Policy</em></a> </span>configuration is selected, <strong>{{param: non-existent #.AdvancedLevel or <a href="#D.Device:2.Device.Firewall.PolicyLevel"><em>PolicyLevel</em></a>}}</strong> selects the currently active entry in this table. Each <em>Level</em> table entry references the <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a> that contains the rules for this level.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Firewall.Level.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Firewall.Level.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.Firewall.Level.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.Firewall.Level.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Firewall.Level.Policies"><em>Policies</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Level.Policies">Policies</span></td>
<td>string[]</td>
<td>W</td>
<td>Comma-separated list of strings. Each list item MUST be the Path Name of a <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy</em></a>, or an empty string. <em>Policies</em> only applies
when <a href="#D.Device:2.Device.Firewall.Config"><em>Config</em></a> is <a href="#D.Device:2.Device.Firewall.Config.Policy"><em>Policy</em></a>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.">Device.Firewall.Policy.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall Policy table. When a <a href="#D.Device:2.Device.Firewall.Config.Policy"><em>Policy</em></a> configuration is
selected, <a href="#D.Device:2.Device.Firewall.PolicyLevel"><em>PolicyLevel</em></a> selects the currently active entry in
this table. Each <em>Policy</em> table entry references the
<a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a> that contains the rules for this policy.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Firewall.Policy.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Firewall.Policy.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the firewall policy.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of this <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy</em></a> entry. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Policy.Status.Disabled"><em>Disabled</em></span></li>
<li><span id="D.Device:2.Device.Firewall.Policy.Status.Enabled"><em>Enabled</em></span></li>
<li><span id="D.Device:2.Device.Firewall.Policy.Status.Error_Misconfigured"><em>Error_Misconfigured</em></span></li>
<li><span id="D.Device:2.Device.Firewall.Policy.Status.Error"><em>Error</em></span> (OPTIONAL)</li></ul>

<p>The <a href="#D.Device:2.Device.Firewall.Policy.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a> value indicates that a necessary
configuration value is undefined or invalid.</p>

<p>The <a href="#D.Device:2.Device.Firewall.Policy.Status.Error"><em>Error</em></a> value MAY be used by the CPE to indicate a locally
defined error condition.</p></td>
<td>Disabled</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.Chain">Chain</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The Chain containing Firewall Rules associated with this <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy</em></a>
entry. This is applicable for traffic from the
<a href="#D.Device:2.Device.Firewall.Policy.SourceInterface"><em>SourceInterface</em></a> to the <a href="#D.Device:2.Device.Firewall.Policy.DestinationInterface"><em>DestinationInterface</em></a>.
<em>Chain</em> only applies when <a href="#D.Device:2.Device.Firewall.Policy.TargetChain"><em>TargetChain</em></a> is
<a href="#D.Device:2.Device.Firewall.Policy.TargetChain.Chain"><em>Chain</em></a>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.TargetChain">TargetChain</span></td>
<td>string</td>
<td>W</td>
<td><p>Action to perform for traffic matching this <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy</em></a> entry.
Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Policy.TargetChain.Drop"><em>Drop</em></span> (The firewall discards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Policy.TargetChain.Accept"><em>Accept</em></span> (The firewall forwards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Policy.TargetChain.Reject"><em>Reject</em></span> (The firewall discards packets matching this rule, and sends an ICMP message to the originating host, OPTIONAL)</li>
<li><span id="D.Device:2.Device.Firewall.Policy.TargetChain.Chain"><em>Chain</em></span> (The rules in the chain referenced by the <a href="#D.Device:2.Device.Firewall.Policy.Chain"><em>Chain</em></a> parameter are matched, OPTIONAL)</li></ul></td>
<td>Drop</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.SourceInterface">SourceInterface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This specifies the L3 source interface associated with the entry.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.DestinationInterface">DestinationInterface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This specifies the L3 destination interface associated with the
entry.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.IPVersion">IPVersion</span></td>
<td>int(-1:15)</td>
<td>W</td>
<td><p>IP Protocol Version as specified in [<a href="#R.IANA-ipversionnumbers">IANA-ipversionnumbers</a>].
For example:</p>

<ul>
<li><em>4</em> (IPv4)</li>
<li><em>6</em> (IPv6)</li></ul>

<p>A value of <em>-1</em> indicates this criterion is not used for matching.</p></td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.ReverseChain">ReverseChain</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The Chain containing Firewall Rules associated with this <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy</em></a>
entry. This is applicable for traffic from the
<a href="#D.Device:2.Device.Firewall.Policy.DestinationInterface"><em>DestinationInterface</em></a> to the <a href="#D.Device:2.Device.Firewall.Policy.SourceInterface"><em>SourceInterface</em></a>.
<em>ReverseChain</em> only applies when <a href="#D.Device:2.Device.Firewall.Policy.ReverseTargetChain"><em>ReverseTargetChain</em></a> is
<a href="#D.Device:2.Device.Firewall.Policy.ReverseTargetChain.Chain"><em>Chain</em></a>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Policy.ReverseTargetChain">ReverseTargetChain</span></td>
<td>string</td>
<td>W</td>
<td><p>Action to perform for traffic matching this <a href="#D.Device:2.Device.Firewall.Policy."><em>Policy</em></a> entry.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Policy.ReverseTargetChain.Drop"><em>Drop</em></span> (The firewall discards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Policy.ReverseTargetChain.Accept"><em>Accept</em></span> (The firewall forwards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Policy.ReverseTargetChain.Reject"><em>Reject</em></span> (The firewall discards packets matching this rule, and sends an ICMP message to the originating host, OPTIONAL)</li>
<li><span id="D.Device:2.Device.Firewall.Policy.ReverseTargetChain.Chain"><em>Chain</em></span> (The rules in the chain referenced by the <a href="#D.Device:2.Device.Firewall.Policy.ReverseChain"><em>ReverseChain</em></a> parameter are matched, OPTIONAL)</li></ul></td>
<td>Drop</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Firewall.Chain.">Device.Firewall.Chain.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall Chain table. Each entry contains an ordered list of
<a href="#D.Device:2.Device.Firewall.Chain.Rule."><em>Rule</em></a> objects which can themselves reference other <em>Chain</em>
instances. A hierarchy of rules can therefore be created.</p>

<p>A given Firewall Chain’s rules are all created by the same entity, as
indicated by the <a href="#D.Device:2.Device.Firewall.Chain.Creator"><em>Creator</em></a> parameter.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Firewall.Chain.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Firewall.Chain.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.Firewall.Chain.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.Firewall.Chain.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.Firewall.Chain.Rule.">Device.Firewall.Chain.{i}.Rule.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall Rule table. Each entry defines a Firewall packet selection
rule. The <a href="#D.Device:2.Device.Firewall.Chain.Rule.Target"><em>Target</em></a> parameter defines the action to perform for
traffic matching this rule: the packet can be dropped, accepted,
rejected or passed to another <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a>.</p>

<p>This table MUST NOT contain dynamic Firewall rules associated with
<a href="#D.Device:2.Device.Firewall.Type.Stateful"><em>Stateful</em></a> Firewall sessions.</p>

<p>All entries are created by the creator of the parent <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a>, as
indicated by its <a href="#D.Device:2.Device.Firewall.Chain.Creator"><em>Creator</em></a> parameter. <em>Rule</em> entries in a
<a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a> with a <a href="#D.Device:2.Device.Firewall.Chain.Creator"><em>Creator</em></a> of <a href="#D.Device:2.Device.Firewall.Chain.Creator.Defaults"><em>Defaults</em></a>,
<a href="#D.Device:2.Device.Firewall.Chain.Creator.ACS"><em>ACS</em></a>, <a href="#D.Device:2.Device.Firewall.Chain.Creator.UserInterface"><em>UserInterface</em></a> or (maybe)
<a href="#D.Device:2.Device.Firewall.Chain.Creator.Other"><em>Other</em></a> are referred to as <em>Static</em> <em>Rule</em>s.
Whether or not a <em>Rule</em> in a <a href="#D.Device:2.Device.Firewall.Chain."><em>Chain</em></a> with <a href="#D.Device:2.Device.Firewall.Chain.Creator"><em>Creator</em></a>
<a href="#D.Device:2.Device.Firewall.Chain.Creator.Other"><em>Other</em></a> is regarded as <em>Static</em> is a local matter to
the CPE. Some of this object’s parameter descriptions refer to whether
a <em>Rule</em> is <em>Static</em> when specifying whether or not the parameter
value can be modified.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.Firewall.Chain.Rule.SourceInterface"><em>SourceInterface</em></a> is not a valid
reference and <a href="#D.Device:2.Device.Firewall.Chain.Rule.SourceAllInterfaces"><em>SourceAllInterfaces</em></a> is <em>false</em>, or if
<a href="#D.Device:2.Device.Firewall.Chain.Rule.DestInterface"><em>DestInterface</em></a> is not a valid reference and
<a href="#D.Device:2.Device.Firewall.Chain.Rule.DestAllInterfaces"><em>DestAllInterfaces</em></a> is <em>false</em>, then the table entry is
inoperable and the CPE MUST set <a href="#D.Device:2.Device.Firewall.Chain.Rule.Status"><em>Status</em></a> to
<a href="#D.Device:2.Device.Firewall.Chain.Rule.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Firewall.Chain.Rule.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Firewall.Chain.Rule.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.Firewall.Chain.Rule.ConnectionState"><em>ConnectionState</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Firewall.Chain.Rule.SourceMAC"><em>SourceMAC</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.Firewall.Chain.Rule.SourceMACExclude"><em>SourceMACExclude</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Firewall.Chain.Rule.Target">Target</span></td>
<td>string</td>
<td>W</td>
<td><p>Action to perform for traffic matching this <a href="#D.Device:2.Device.Firewall.Chain.Rule."><em>Rule</em></a> entry.[ Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.Drop"><em>Drop</em></span> (The firewall discards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.Accept"><em>Accept</em></span> (The firewall forwards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.Reject"><em>Reject</em></span> (The firewall discards packets matching this rule, and sends an ICMP message to the originating host, OPTIONAL)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.Return"><em>Return</em></span> (The firewall doesn’t consider the remaining rules (if any) in the current chain, OPTIONAL)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.TargetChain"><em>TargetChain</em></span> (The rules in the chain referenced by the <a href="#D.Device:2.Device.Firewall.Chain.Rule.TargetChain"><em>TargetChain</em></a> parameter are matched, OPTIONAL)
<span class="removed">]</span></li></ul>

<p>This parameter can only be modified if the <a href="#D.Device:2.Device.Firewall.Chain.Rule."><em>Rule</em></a> is <em>Static</em> (as explained in the object description).</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.Drop"><em>Drop</em></span> (The firewall discards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.Accept"><em>Accept</em></span> (The firewall forwards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.Reject"><em>Reject</em></span> (The firewall discards packets matching this rule, and sends an ICMP message to the originating host, OPTIONAL)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.Return"><em>Return</em></span> (The firewall doesn’t consider the remaining rules (if any) in the current chain, OPTIONAL)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.Target.TargetChain"><em>TargetChain</em></span> (The rules in the chain referenced by the <a href="#D.Device:2.Device.Firewall.Chain.Rule.TargetChain"><em>TargetChain</em></a> parameter are matched, OPTIONAL)</li></ul></td>
<td>Drop</td>
<td>2.2</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.Firewall.Chain.Rule.IPVersion">IPVersion</span></td>
<td>int(-1:15)</td>
<td>W</td>
<td><p><a href="#D.Device:2.Device.Firewall.Chain.Rule."><em>Rule</em></a> criterion.</p>

<p>IP Protocol Version <span class="removed">(e.g.</span><span class="inserted">as</span> <span class="removed">4</span><span class="inserted">specified</span> <span class="removed">for</span><span class="inserted">in</span> <span class="removed">IPv4</span><span class="inserted">[<a href="#R.IANA-ipversionnumbers">IANA-ipversionnumbers</a>].</span> <span class="removed">and</span><span class="inserted">For</span> <span class="removed">6</span><span class="inserted">example:</span></p>

<ul>
<li><em>4</em> <span class="removed">for</span><span class="inserted">(IPv4)</span></li>
<li><em>6</em> <span class="removed">IPv6). </span><span class="inserted">(IPv6)</span>A value of <span class="removed">-1</span><span class="inserted"><em>-1</em></span> indicates this criterion is not used for matching.</li></ul>

<p>This parameter can only be modified if the <a href="#D.Device:2.Device.Firewall.Chain.Rule."><em>Rule</em></a> is <em>Static</em> (as explained in the object description).</p></td>
<td>-1</td>
<td>2.2</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Chain.Rule.ConnectionState">ConnectionState</span></td>
<td>string[]</td>
<td>W</td>
<td><p>Comma-separated list of strings. Matches only packets according to the following connection states.
An empty string indicates this criterion is not used for matching.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.ConnectionState.INVALID"><em>INVALID</em></span> (The received packet is not associated with an known connection and it may contain faulty data or headers)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.ConnectionState.NEW"><em>NEW</em></span> (The first received packet of a new not yet established connection)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.ConnectionState.RELATED"><em>RELATED</em></span> (The received packet that is starting a new connection and is related to an already known and established connection)</li>
<li><span id="D.Device:2.Device.Firewall.Chain.Rule.ConnectionState.ESTABLISHED"><em>ESTABLISHED</em></span> (The received packet is part of an already established and known connection that has handled packets in both directions and is being considered fully valid)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Chain.Rule.SourceMAC">SourceMAC</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>W</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] Source MAC address. An empty string indicates this criterion is not used
for matching.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Chain.Rule.SourceMACExclude">SourceMACExclude</span></td>
<td>boolean</td>
<td>W</td>
<td><p>If <em>false</em>, the rule matches only those packets that match the
<a href="#D.Device:2.Device.Firewall.Chain.Rule.SourceMAC"><em>SourceMAC</em></a> entry, if specified.</p>

<p>If <em>true</em>, the rule matches all packets except those that match the
<a href="#D.Device:2.Device.Firewall.Chain.Rule.SourceMAC"><em>SourceMAC</em></a> entry, if specified.</p></td>
<td>false</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.">Device.Firewall.Pinhole.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall Pinhole object that is used for configuring pinholes. Pinholes
are similar to port mapping entries but without the NAT support. The
Pinhole table is used for allowing certain incoming traffic, on the
<a href="#D.Device:2.Device.Firewall.Pinhole.Interface"><em>Interface</em></a>, to be routed to the internal network.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.Firewall.Pinhole.DestMACAddress"><em>DestMACAddress</em></a> and
<a href="#D.Device:2.Device.Firewall.Pinhole.DestIP"><em>DestIP</em></a> are an empty string, or if <a href="#D.Device:2.Device.Firewall.Pinhole.Interface"><em>Interface</em></a> is not a
valid reference, then the table entry is inoperable and the device MUST
set <a href="#D.Device:2.Device.Firewall.Pinhole.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Firewall.Pinhole.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Firewall.Pinhole.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Firewall.Pinhole.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the pinhole.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of this <a href="#D.Device:2.Device.Firewall.Pinhole."><em>Pinhole</em></a> entry.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Pinhole.Status.Disabled"><em>Disabled</em></span> (Indicates that the pinhole is disabled)</li>
<li><span id="D.Device:2.Device.Firewall.Pinhole.Status.Enabled"><em>Enabled</em></span> (Indicates that the pinhole is enabled)</li>
<li><span id="D.Device:2.Device.Firewall.Pinhole.Status.Error_Misconfigured"><em>Error_Misconfigured</em></span> (Indicates that a necessary configuration value is undefined or invalid)</li>
<li><span id="D.Device:2.Device.Firewall.Pinhole.Status.Error"><em>Error</em></span> (MAY be used to define an error condition, OPTIONAL)</li></ul></td>
<td>Disabled</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.Origin">Origin</span></td>
<td>string</td>
<td>W</td>
<td><p>Indicates the owner of the <a href="#D.Device:2.Device.Firewall.Pinhole."><em>Pinhole</em></a> instance.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Pinhole.Origin.User"><em>User</em></span> (Used for indicating that the pinhole rule was created by the end-user. For example through the web-ui)</li>
<li><span id="D.Device:2.Device.Firewall.Pinhole.Origin.System"><em>System</em></span> (Used for indicating that the pinhole rule was created by the system itself)</li>
<li><span id="D.Device:2.Device.Firewall.Pinhole.Origin.Controller"><em>Controller</em></span> (Used for indicating that the pinhole rule was created by a Controller)</li></ul></td>
<td>Controller</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.Description">Description</span></td>
<td>string(:256)</td>
<td>W</td>
<td>Human-readable description associated with this <a href="#D.Device:2.Device.Firewall.Pinhole."><em>Pinhole</em></a> entry.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. Specifies the incoming L3 interface to which this pinhole applies.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.SourcePort">SourcePort</span></td>
<td>int(-1:65535)</td>
<td>W</td>
<td>Source port number of the incoming connection. A value of <em>-1</em>
indicates this criterion is not used for matching.</td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.DestPort">DestPort</span></td>
<td>int(-1:65535)</td>
<td>W</td>
<td>Destination port number. A value of <em>-1</em> indicates this criterion
is not used for matching.</td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.IPVersion">IPVersion</span></td>
<td>int(-1:15)</td>
<td>W</td>
<td><p>IP Protocol Version as specified in [<a href="#R.IANA-ipversionnumbers">IANA-ipversionnumbers</a>].
For example:</p>

<ul>
<li><em>4</em> (IPv4)</li>
<li><em>6</em> (IPv6)</li></ul>

<p>A value of <em>-1</em> indicates this criterion is not used for matching.</p></td>
<td>6</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.Protocol">Protocol</span></td>
<td>int(-1:255)[]</td>
<td>W</td>
<td><p>Comma-separated list of integers (-1 to 255). Protocol number as specified in [<a href="#R.IANA-protocolnumbers">IANA-protocolnumbers</a>] For
example:</p>

<ul>
<li><em>6</em> (TCP)</li>
<li><em>17</em>(UDP) A value of <em>-1</em> indicates this criterion is not used
for matching.</li></ul></td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.SourcePrefixes">SourcePrefixes</span></td>
<td><span title="IPPrefix[]">string(:49)[]</span></td>
<td>W</td>
<td>[<a href="#T.IPPrefix">IPPrefix</a>] Comma-separated list of IPPrefixs. Only allow incoming connections that match one or more of the source
IP addresses or prefixes that are specified in <em>SourcePrefixes</em> for the
applied pinhole.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.DestIP">DestIP</span></td>
<td><span title="IPAddress">string(:45)</span></td>
<td>W</td>
<td>[<a href="#T.IPAddress">IPAddress</a>] The IP address of a client on the internal network. Either <em>DestIP</em>
or <a href="#D.Device:2.Device.Firewall.Pinhole.DestMACAddress"><em>DestMACAddress</em></a> MUST be configured, it is not allowed to
configure them both. An empty string indicates this criterion is not used
for matching.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Pinhole.DestMACAddress">DestMACAddress</span></td>
<td><span title="MACAddress">string(:17)</span></td>
<td>W</td>
<td>[<a href="#T.MACAddress">MACAddress</a>] The MAC address of a client on the internal network. Either <em>DestMACAddress</em>
or <a href="#D.Device:2.Device.Firewall.Pinhole.DestIP"><em>DestIP</em></a> MUST be configured, it is not allowed to
configure them both. An empty string indicates this criterion is not used
for matching.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.">Device.Firewall.DMZ.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall DMZ object that is be used for configuring a demilitarized
zone. A DMZ network is a seperate network perimeter that protects the
internal network from untrusted traffic. Typically the DMZ is located
between two firewalls, the firewall of the internal network and the
firewall responsible for handling untrusted traffic.</p>

<p>The device MUST forward all received packets that matches the
<a href="#D.Device:2.Device.Firewall.DMZ.SourcePrefix"><em>SourcePrefix</em></a> criteria to the IP address that is specified in
<a href="#D.Device:2.Device.Firewall.DMZ.DestIP"><em>DestIP</em></a>.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.Firewall.DMZ.DestIP"><em>DestIP</em></a> is an empty string, or if
<a href="#D.Device:2.Device.Firewall.DMZ.Interface"><em>Interface</em></a> is not a valid reference, then the table entry is
inoperable and the device MUST set <a href="#D.Device:2.Device.Firewall.DMZ.Status"><em>Status</em></a> to
<a href="#D.Device:2.Device.Firewall.DMZ.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Firewall.DMZ.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Firewall.DMZ.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for both <a href="#D.Device:2.Device.Firewall.DMZ.DestIP"><em>DestIP</em></a> and <a href="#D.Device:2.Device.Firewall.DMZ.SourcePrefix"><em>SourcePrefix</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the firewall DMZ instance.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of this <a href="#D.Device:2.Device.Firewall.DMZ."><em>DMZ</em></a> entry.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.DMZ.Status.Disabled"><em>Disabled</em></span> (Indicates that the DMZ entry is disabled)</li>
<li><span id="D.Device:2.Device.Firewall.DMZ.Status.Enabled"><em>Enabled</em></span> (Indicates that the DMZ entry is enabled)</li>
<li><span id="D.Device:2.Device.Firewall.DMZ.Status.Error_Misconfigured"><em>Error_Misconfigured</em></span> (Indicates that a necessary configuration value is undefined or invalid)</li>
<li><span id="D.Device:2.Device.Firewall.DMZ.Status.Error"><em>Error</em></span> (MAY be used to define an error condition, OPTIONAL)</li></ul></td>
<td>Disabled</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.Origin">Origin</span></td>
<td>string</td>
<td>W</td>
<td><p>Indicates who configured the <a href="#D.Device:2.Device.Firewall.DMZ."><em>DMZ</em></a> instance.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.DMZ.Origin.User"><em>User</em></span> (Used for indicating that the DMZ rule was created by the end-user. For example through the web-ui)</li>
<li><span id="D.Device:2.Device.Firewall.DMZ.Origin.System"><em>System</em></span> (Used for indicating that the DMZ rule was created by the system itself)</li>
<li><span id="D.Device:2.Device.Firewall.DMZ.Origin.Controller"><em>Controller</em></span> (Used for indicating that the DMZ rule was created by a Controller,)</li></ul></td>
<td>Controller</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.Description">Description</span></td>
<td>string(:256)</td>
<td>W</td>
<td>Human-readable description associated with the entry.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This specifies the incoming L3 interface to which the DMZ applies.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.DestIP">DestIP</span></td>
<td><span title="IPv4Address">string(:45)</span></td>
<td>W</td>
<td>[<a href="#T.IPv4Address">IPv4Address</a>] The IPv4 address of a client in the DMZ network.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.DMZ.SourcePrefix">SourcePrefix</span></td>
<td><span title="IPv4Prefix">string(:49)</span></td>
<td>W</td>
<td>[<a href="#T.IPv4Prefix">IPv4Prefix</a>] Only allow incoming connections that match to the source IPv4 address
or prefix that is specified in <em>SourcePrefix</em> for the applied DMZ
instance. An empty string indicates this criterion is not used for
matching.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Firewall.Service.">Device.Firewall.Service.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Firewall Service object that is used for configuring the firewall for
opening a port/protocol for a local network service. For example:</p>

<ul>
<li><em>SSH Server</em></li>
<li><em>Web Server</em></li></ul>

<p>For enabled table entries, if <a href="#D.Device:2.Device.Firewall.Service.Interface"><em>Interface</em></a>, <a href="#D.Device:2.Device.Firewall.Service.DestPort"><em>DestPort</em></a>
and <a href="#D.Device:2.Device.Firewall.Service.Protocol"><em>Protocol</em></a> are an empty string, or if <a href="#D.Device:2.Device.Firewall.Service.Interface"><em>Interface</em></a> is not
a valid reference, then the table entry is inoperable and the device
MUST set <a href="#D.Device:2.Device.Firewall.Service.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.Firewall.Service.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.Firewall.Service.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.Firewall.Service.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.Firewall.Service.Interface"><em>Interface</em></a>, <a href="#D.Device:2.Device.Firewall.Service.DestPort"><em>DestPort</em></a>, <a href="#D.Device:2.Device.Firewall.Service.Protocol"><em>Protocol</em></a> and <a href="#D.Device:2.Device.Firewall.Service.SourcePrefixes"><em>SourcePrefixes</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the firewall service instance.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of this <a href="#D.Device:2.Device.Firewall.Service."><em>Service</em></a> entry.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Service.Status.Disabled"><em>Disabled</em></span> (Indicates that the Service entry is disabled)</li>
<li><span id="D.Device:2.Device.Firewall.Service.Status.Enabled"><em>Enabled</em></span> (Indicates that the Service entry is enabled)</li>
<li><span id="D.Device:2.Device.Firewall.Service.Status.Error_Misconfigured"><em>Error_Misconfigured</em></span> (Indicates that a necessary configuration value is undefined or invalid)</li>
<li><span id="D.Device:2.Device.Firewall.Service.Status.Error"><em>Error</em></span> (MAY be used to define an error condition, OPTIONAL)</li></ul></td>
<td>Disabled</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. This specifies the incoming L3 interface to which the Service rule
applies.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.DestPort">DestPort</span></td>
<td>int(-1:65535)[]</td>
<td>W</td>
<td>Comma-separated list of integers (-1 to 65535). Destination port number. A value of <em>-1</em> indicates this criterion
is not used for matching.</td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.IPVersion">IPVersion</span></td>
<td>int(-1:15)</td>
<td>W</td>
<td><p>IP Protocol Version as specified in [<a href="#R.IANA-ipversionnumbers">IANA-ipversionnumbers</a>].
For example:</p>

<ul>
<li><em>4</em> (IPv4)</li>
<li><em>6</em> (IPv6)</li></ul>

<p>A value of <em>-1</em> indicates this criterion is not used for matching.</p></td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.Protocol">Protocol</span></td>
<td>int(-1:255)[]</td>
<td>W</td>
<td><p>Comma-separated list of integers (-1 to 255). Protocol number as specified in [<a href="#R.IANA-protocolnumbers">IANA-protocolnumbers</a>] For
example:</p>

<ul>
<li><em>6</em> (TCP)</li>
<li><em>17</em>(UDP) A value of <em>-1</em> indicates this criterion is not used
for matching.</li></ul></td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.ICMPType">ICMPType</span></td>
<td>int(-1:255)</td>
<td>W</td>
<td>ICMP type as specified in [<a href="#R.RFC792">RFC792</a>] for &lsquo;IPv4&rsquo; and
[<a href="#R.RFC4443">RFC4443</a>] for &lsquo;IPv6&rsquo;. Only applicable when
<a href="#D.Device:2.Device.Firewall.Service.Protocol"><em>Protocol</em></a> contains <em>1</em> (ICMP IPv4) or <em>58</em> (ICMP IPv6).
A value of <em>-1</em> indicates this criterion is not used for matching.</td>
<td>-1</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.SourcePrefixes">SourcePrefixes</span></td>
<td><span title="IPPrefix[]">string(:49)[]</span></td>
<td>W</td>
<td>[<a href="#T.IPPrefix">IPPrefix</a>] Comma-separated list of IPPrefixs. Only allow incoming connections that match one or more of the source
IP addresses or prefixes that are specified in <em>SourcePrefixes</em> for the
applied service.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Firewall.Service.Action">Action</span></td>
<td>string</td>
<td>W</td>
<td><p>Action to perform for traffic matching this <a href="#D.Device:2.Device.Firewall.Service."><em>Service</em></a> entry.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Firewall.Service.Action.Drop"><em>Drop</em></span> (The firewall discards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Service.Action.Accept"><em>Accept</em></span> (The firewall forwards packets matching this rule)</li>
<li><span id="D.Device:2.Device.Firewall.Service.Action.Reject"><em>Reject</em></span> (The firewall discards packets matching this rule, and sends an ICMP message to the originating host, OPTIONAL)</li></ul></td>
<td>Accept</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PeriodicStatistics.">Device.PeriodicStatistics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object configures collection of periodic statistics for the
device.</p>

<p>Periodic statistics are measured over a sample interval (which can be
aligned with absolute time) and are made available to the Controller as
a comma-separated list of the most recent <n> samples.</p>

<p>This object provides a single set of global settings that affect the
entire device unless overridden locally.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.">Device.PeriodicStatistics.SampleSet.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Periodic statistics sample set table. Each sample set has its own
sample interval etc.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.SampleInterval">SampleInterval</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td><p>The sample interval in <em>seconds</em>. Each statistic is measured over this sample interval.</p>

<p>The CPE MAY reject a request to set <em>SampleInterval</em> to less than <strong>{{param: non-existent <span class="inserted">#.MinSampleInterval</span>}}</strong>.</p>

<p>Sample intervals MUST begin every <em>SampleInterval</em> <em>seconds</em>, with no delay between samples.</p>

<p>If <em>SampleInterval</em> is changed while collection of periodic statistics is enabled, any stored samples are discarded, and the first sample interval begins immediately.</p>

<p>For example, if <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a> is 24 and <em>SampleInterval</em> is 3600 (an hour), the CPE can store up to a day’s worth of samples for each statistic.</p></td>
<td>3600</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples">ReportSamples</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td><p>The number of samples that the CPE will store and report for each statistic.</p>

<p>The CPE MUST permit <em>ReportSamples</em> to be set to at least <strong>{{param: non-existent <span class="inserted">#.MaxReportSamples</span>}}</strong>.</p>

<p>If <em>ReportSamples</em> is changed while collection of periodic statistics is enabled, the CPE will truncate or extend its statistics buffers as appropriate, but statistics collection MUST NOT otherwise be affected.</p>

<p>For example, if <em>ReportSamples</em> is 24 and <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.SampleInterval"><em>SampleInterval</em></a> is 3600 (an hour), the CPE can store up to a day’s worth of samples for each statistic.</p></td>
<td>24</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.ReportStartTime">ReportStartTime</span></td>
<td>dateTime</td>
<td>R</td>
<td>The absolute time at which the sample interval for the first stored
sample (for each statistic) started.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed default value = ““ ⇒ <em>0001-01-01T00:00:00Z</em></li></ul></div></td>
<td>0001-01-01T00:00:00Z</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.ReportEndTime">ReportEndTime</span></td>
<td>dateTime</td>
<td>R</td>
<td><p>The absolute time at which the sample interval for the last stored
sample (for each statistic) ended.</p>

<p>If <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ForceSample"><em>Device.PeriodicStatistics.SampleSet.{i}.ForceSample</em></a> has been used to force
statistics for the current sample to be calculated and updated in the
data model, then <em>ReportEndTime</em> MUST be updated to reflect the actual time
over which stored data was collected.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed default value = ““ ⇒ <em>0001-01-01T00:00:00Z</em></li></ul></div></td>
<td>0001-01-01T00:00:00Z</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>Indicates availability of Sample statistics. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Disabled"><em>Disabled</em></span> (Collection is disabled)</li>
<li><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></span> (Collection is enabled)</li>
<li><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></span> (Collection is enabled and the <span class="inserted">ACS</span> SHOULD now fetch the collected data)</li></ul>

<p>The <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> value is only used for triggering the <span class="removed">Controller</span><span class="inserted">ACS</span> to fetch the collected data and can only be used when <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.FetchSamples"><em>FetchSamples</em></a> is in the range [1:<a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a>].</p>

<p>The transition from <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> MUST be instantaneous and so will result in only a single value change for notification purposes.</p></td>
<td>Disabled</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.FetchSamples">FetchSamples</span></td>
<td>unsignedInt</td>
<td>W</td>
<td><p>The number of sample intervals to be collected before transitioning <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> from <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a>.</p>

<p>If this SampleSet is enabled and <em>FetchSamples</em> is in the range [1:<a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a>] then <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> MUST transition from <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Trigger"><em>Trigger</em></a> to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status.Enabled"><em>Enabled</em></a> on completion of every <em>FetchSamples</em> sample intervals. Otherwise, the transition MUST NOT occur.</p>

<p>For example, if <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a> is 25 and <em>FetchSamples</em> is 24, then the CPE will store 25 values for each monitored parameter and the above <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Status"><em>Status</em></a> transition will occur as the CPE stores each 24th of 25 sample intervals, which means that the <span class="removed">Controller</span><span class="inserted">ACS</span> could delay for up to two sample intervals before reading the stored values and would still not miss any samples (see also <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ForceSample"><em>Device.PeriodicStatistics.SampleSet.{i}.ForceSample</em></a>).</p>

<p>To disable this trigger mechanism and still collect sampled statistics, <em>FetchSamples</em> can be set to either 0 or a value greater than <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ReportSamples"><em>ReportSamples</em></a>.</p></td>
<td>0</td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.">Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Periodic statistics parameter table for this sample set. This table contains entries for parameters whose values are to be sampled.</p>

<p>Note that the comma-separated lists in this object (SampleSeconds, SuspectData and Values) only ever change (a) when first enabled, (b) when <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.ForceSample"><em>Device.PeriodicStatistics.SampleSet.{i}.ForceSample</em></a> <span class="removed">is</span><span class="inserted">has</span> <span class="removed">set</span><span class="inserted">been used</span> to <span class="removed">true</span><span class="inserted">force statistics for the current sample to be calculated</span> (a &ldquo;sneak preview&rdquo; of the current sample), or (c) at the end of the sample interval.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Reference"><em>Reference</em></a>.</p></td>
<td>-</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.LowThreshold">LowThreshold</span></td>
<td>int</td>
<td>W</td>
<td><p>The low threshold value that controls the calculation of <span class="removed"><a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Failures"><em>Failures</em></a></span><span class="inserted"><a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Failures"><em>Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures</em></a></span>.</p>

<p>A value equal to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.HighThreshold"><em>HighThreshold</em></a> disables the threshold/failure mechanism.</p>

<p>Parameters of non-numeric types cannot support the threshold/failure mechanism. The value of this parameter MUST be ignored for such parameters.</p></td>
<td>0</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.HighThreshold">HighThreshold</span></td>
<td>int</td>
<td>W</td>
<td><p>The high threshold value that controls the calculation of <span class="removed"><a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Failures"><em>Failures</em></a></span><span class="inserted"><a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.Failures"><em>Device.PeriodicStatistics.SampleSet.{i}.Parameter.{i}.Failures</em></a></span>.</p>

<p>A value equal to <a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.LowThreshold"><em>LowThreshold</em></a> disables the threshold/failure mechanism.</p>

<p>Parameters of non-numeric types cannot support the threshold/failure mechanism. The value of this parameter MUST be ignored for such parameters.</p></td>
<td>0</td>
<td>2.0</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.SampleSeconds">SampleSeconds</span></td>
<td>unsignedInt[]</td>
<td>R</td>
<td><p>Comma-separated list of unsigned integers. Each entry indicates the number of <em>seconds</em> during which data was collected for this parameter during the sample interval.</p>

<p>Individual <em>SampleSeconds</em> values can be less than <strong>{{param: non-existent <span class="inserted">#.SampleInterval</span>}}</strong>, for several reasons, including:</p>

<blockquote>Any of the reasons for which <strong>{{param: non-existent <span class="inserted">#.SampleSeconds</span>}}</strong> values might be less than <strong>{{param: non-existent <span class="inserted">#.SampleInterval</span>}}</strong>.</blockquote>

<blockquote>The parameter doesn’t exist, or was created or deleted during a sample interval.</blockquote>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.0</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.">Device.FaultMgmt.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to Fault/Alarm Management.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FaultMgmt.MaxCurrentAlarmEntries">MaxCurrentAlarmEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The maximum number of entries allowed in the <strong>{{object: non-existent <span class="inserted">CurrentAlarm</span>}}</strong> table.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.SupportedAlarm.">Device.FaultMgmt.SupportedAlarm.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Supported Alarm Entries which can be raised by the device.</p>

<p>The instance numbers for this table SHOULD be maintained across
firmware upgrades of the device.</p>

<p>At most one entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.EventType"><em>EventType</em></a>, <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.ProbableCause"><em>ProbableCause</em></a>, <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.SpecificProblem"><em>SpecificProblem</em></a> and <a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.PerceivedSeverity"><em>PerceivedSeverity</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism">ReportingMechanism</span></td>
<td>string</td>
<td>W</td>
<td><p>Indicates the reporting mechanism setting of the alarm. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism.0Expedited"><em>0 Expedited</em></span> (The device inserts the alarm into the <strong>{{object: non-existent <span class="inserted">#.ExpeditedEvent</span>}}</strong> table and the <strong>{{object: non-existent <span class="inserted">#.ExpeditedEvent</span>}}</strong> table)</li>
<li><span id="D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism.1Queued"><em>1 Queued</em></span> (The device inserts the alarm into the <strong>{{object: non-existent <span class="inserted">#.QueuedEvent</span>}}</strong> table and the <strong>{{object: non-existent <span class="inserted">#.QueuedEvent</span>}}</strong> table)</li>
<li><span id="D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism.2Logged"><em>2 Logged</em></span> (The device inserts the alarm into the <strong>{{object: non-existent <span class="inserted">#.HistoryEvent</span>}}</strong> table)</li>
<li><span id="D.Device:2.Device.FaultMgmt.SupportedAlarm.ReportingMechanism.3Disabled"><em>3 Disabled</em></span> (The device ignores the alarm)</li></ul></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.CurrentAlarm.">Device.FaultMgmt.CurrentAlarm.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Contains all currently active alarms (whose <strong>{{param: non-existent <span class="inserted">#.SupportedAlarm.{i}.PerceivedSeverity</span>}}</strong> is not <strong>{{enum: non-existent <span class="inserted">#.SupportedAlarm.{i}.PerceivedSeverity</span>}}</strong>).</p>

<p>Newly raised alarms result in a new entry in this table being added, any changes to the alarm as a result of an update event are updated in the existing table entry, and a clear event raised against an alarm results in the alarm being removed from this table.</p>

<p>If maximum entries as indicated by <strong>{{param: non-existent <span class="inserted">#.MaxCurrentAlarmEntries</span>}}</strong> is reached, the next event overrides the object with the oldest <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.AlarmChangedTime"><em>AlarmChangedTime</em></a>.</p>

<p>When a new alarm replaces an existing alarm, then all parameter values for that instance are considered as changed for the purposes of value change notifications to the Controller (even if their new values are identical to those of the prior alarm).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.AlarmIdentifier"><em>AlarmIdentifier</em></a>, or with the same values for all of <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.EventType"><em>EventType</em></a>, <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.ProbableCause"><em>ProbableCause</em></a> and <a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.SpecificProblem"><em>SpecificProblem</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.HistoryEvent.">Device.FaultMgmt.HistoryEvent.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Alarm events added or updated in <strong>{{object: non-existent <span class="inserted">#.CurrentAlarm</span>}}</strong> are simultaneously entered into the this table. This table also contains alarm clearing events.</p>

<p>Active alarms at the time of a power failure or reboot might not get an alarm clearing event.</p>

<p>This object has a fixed number of entries with instance numbers from 1 to <strong>{{param: non-existent <span class="inserted">#.HistoryEventNumberOfEntries</span>}}</strong>.</p>

<p>If maximum instance number <strong>{{param: non-existent <span class="inserted">#.HistoryEventNumberOfEntries</span>}}</strong> is reached, the next event overrides the object with instance number 1. Subsequent entries override objects at sequentially increasing instance numbers. This logic provides for automatic &ldquo;rolling&rdquo; of records.</p>

<p>At most one entry in this table can exist with the same values for both <a href="#D.Device:2.Device.FaultMgmt.HistoryEvent.EventTime"><em>EventTime</em></a> and <a href="#D.Device:2.Device.FaultMgmt.HistoryEvent.AlarmIdentifier"><em>AlarmIdentifier</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.ExpeditedEvent.">Device.FaultMgmt.ExpeditedEvent.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Alarm events added or updated in <strong>{{object: non-existent <span class="inserted">#.CurrentAlarm</span>}}</strong> are simultaneously entered into the this table if their corresponding entry in <strong>{{object: non-existent <span class="inserted">#.SupportedAlarm</span>}}</strong> has <strong>{{param: non-existent <span class="inserted">#.SupportedAlarm.{i}.ReportingMechanism</span>}}</strong> set to <strong>{{enum: non-existent <span class="inserted">#.SupportedAlarm.{i}.ReportingMechanism</span>}}</strong>. This table also contains alarm clearing events.</p>

<p>This object has a fixed number of entries with instance numbers from 1 to <strong>{{param: non-existent <span class="inserted">#.ExpeditedEventNumberOfEntries</span>}}</strong>.</p>

<p>Initially the table starts with all instances having <a href="#D.Device:2.Device.FaultMgmt.ExpeditedEvent.EventTime"><em>EventTime</em></a> set to the Unknown Time value, as defined in [<a href="#R.TR-106">TR-106</a>].</p>

<p>If maximum instance number <strong>{{param: non-existent <span class="inserted">#.ExpeditedEventNumberOfEntries</span>}}</strong> is reached, the next event overrides the object with instance number 1. Subsequent entries override objects at sequentially increasing instance numbers. This logic provides for automatic &ldquo;rolling&rdquo; of records.</p>

<p>When a new alarm replaces an existing alarm, then all parameter values for that instance are considered as changed for the purposes of value change notifications to the Controller (even if their new values are identical to those of the prior alarm).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.FaultMgmt.ExpeditedEvent.AlarmIdentifier"><em>AlarmIdentifier</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FaultMgmt.QueuedEvent.">Device.FaultMgmt.QueuedEvent.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Alarm events added or updated in <strong>{{object: non-existent <span class="inserted">#.CurrentAlarm</span>}}</strong> are simultaneously entered into the this table if their corresponding entry in <strong>{{object: non-existent <span class="inserted">#.SupportedAlarm</span>}}</strong> has <strong>{{param: non-existent <span class="inserted">#.SupportedAlarm.{i}.ReportingMechanism</span>}}</strong> set to <strong>{{enum: non-existent <span class="inserted">#.SupportedAlarm.{i}.ReportingMechanism</span>}}</strong>. This table also contains alarm clearing events.</p>

<p>This object has a fixed number of entries with instance numbers from 1 to <strong>{{param: non-existent <span class="inserted">#.QueuedEventNumberOfEntries</span>}}</strong>.</p>

<p>Initially the table starts with all instances having <a href="#D.Device:2.Device.FaultMgmt.QueuedEvent.EventTime"><em>EventTime</em></a> set to the Unknown Time value, as defined in [<a href="#R.TR-106">TR-106</a>].</p>

<p>If maximum instance number <strong>{{param: non-existent <span class="inserted">#.QueuedEventNumberOfEntries</span>}}</strong> is reached, the next event overrides the object with instance number 1. Subsequent entries override objects at sequentially increasing instance numbers. This logic provides for automatic &ldquo;rolling&rdquo; of records.</p>

<p>When a new alarm replaces an existing alarm, then all parameter values for that instance are considered as changed for the purposes of value change notifications to the Controller (even if their new values are identical to those of the prior alarm).</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.FaultMgmt.QueuedEvent.AlarmIdentifier"><em>AlarmIdentifier</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.">Device.FAP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object is the container for all Femto related component objects,
to prevent pollution of the so-called global namespace of the BBF with
FAP specific objects.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.GPS.">Device.FAP.GPS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains the parameters relating to the GPS scan.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.GPS.AGPSServerConfig.">Device.FAP.GPS.AGPSServerConfig.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters for the configuration of the Assisted
Global Positioning System (A-GPS) server. See also
[<a href="#R.3GPP-TS.25.171">Section 3.2/3GPP-TS.25.171</a>]</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FAP.GPS.AGPSServerConfig.Password">Password</span></td>
<td>string(:64)</td>
<td>W</td>
<td><p>Password to be used by the device to authenticate with the A-GPS
server. This string is set to an empty string if no authentication is used.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:64)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:64)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.PerfMgmt.">Device.FAP.PerfMgmt.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains parameters relating to Performance Management in a
Femto-related environment.</td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FAP.PerfMgmt.Config.">Device.FAP.PerfMgmt.Config.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object contains parameters relating to File Management
configuration for uploading of Performance Files to a designated File
Server. Each table entry can be referenced by zero or more
radio-specific objects contained in the FAPService instances. The
periodic upload will upload data for all of the radio-specific objects
that reference it.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.URL"><em>URL</em></a>, <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.PeriodicUploadInterval"><em>PeriodicUploadInterval</em></a> and <a href="#D.Device:2.Device.FAP.PerfMgmt.Config.PeriodicUploadTime"><em>PeriodicUploadTime</em></a>.</p></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.FAP.PerfMgmt.Config.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password to be used by the device to authenticate with the file
server. This string is set to an empty string if no authentication is used.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.4</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.">Device.BulkData.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>This object provides bulk data collection capabilities and global
collection settings that affect the entire device.</p>

<p>Bulk Data utilizes various solutions (e.g., IPDR, HTTP) to collect data
from devices and transfer the data to a collection server.</p>

<p>The IPDR solution is based on a service specification described in
[<a href="#R.TR-232">TR-232</a>].</p>

<p>The HTTP solution is based on transfer mechanisms described in
[<a href="#R.TR-069">Annex N/TR-069</a>].</p>

<p>The Bulk Data Collection Profiles are measured over a reporting
interval (which can be aligned with absolute time) and are made
available to the collection server.</p></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.">Device.BulkData.Profile.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>A set of Bulk Data Collection profiles.</p>

<p>Each profile represents a bulk data report, including its own timing
configuration, communications configuration, and set of parameters.
This allows the Controller to configure multiple reports to be
generated at different times for different sets of data.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.BulkData.Profile.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.BulkData.Profile.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.Parameter.">Device.BulkData.Profile.{i}.Parameter.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Bulk data parameter table.</p>

<p>Each entry in this table represents a parameter (or set of parameters if a partial path is provided) to be <span class="inserted">either </span>collected and <span class="removed">reported.</span><span class="inserted">reported, or omitted if <a href="#D.Device:2.Device.BulkData.Profile.Parameter.Exclude"><em>Exclude</em></a> is <em>true</em>.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.BulkData.Profile.Parameter.Exclude"><em>Exclude</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.5</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.BulkData.Profile.Parameter.Exclude">Exclude</span></td>
<td>boolean</td>
<td>W</td>
<td>When <em>true</em>, the entry is to be excluded from the report.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.BulkData.Profile.HTTP.">Device.BulkData.Profile.{i}.HTTP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object defines the properties to be used when transporting bulk data using the HTTP/HTTPS protocol. This object is used when the <a href="#D.Device:2.Device.BulkData.Profile.Protocol"><em>Protocol</em></a> parameter has a value of <a href="#D.Device:2.Device.BulkData.Protocols.HTTP"><em>HTTP</em></a>. For authentication purposes the CPE MUST support HTTP Basic and Digest Access Authentication as defined in <strong>{{bibref: non-existent <span class="inserted">RFC7617</span> and [<a href="#R.RFC7616">RFC7616</a>]}}</strong>.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.BulkData.Profile.HTTP.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used to authenticate the CPE when making a connection to the
collection server.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SoftwareModules.">Device.SoftwareModules.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Top level object for dynamically managed software applications.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClassNumberOfEntries"><em>ExecEnvClassNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClassNumberOfEntries">ExecEnvClassNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.">Device.SoftwareModules.ExecEnvClass.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This table lists the kinds of Execution Environments which are
available in this device. Rows in this table may possibly be be added,
modified, or removed by as a result of respectively installing,
updating, or removing a <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.Alias"><em>Alias</em></a>, or with the same values for all of <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.Vendor"><em>Vendor</em></a>, <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.Name"><em>Name</em></a> and <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.Version"><em>Version</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Name">Name</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The Name of this <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a> as specified by the Vendor that
implemented this <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Vendor">Vendor</span></td>
<td>string(:128)</td>
<td>R</td>
<td>The author of this <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a> formatted as a fully qualified domain
name.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Version">Version</span></td>
<td>string(:32)</td>
<td>R</td>
<td>The Version of this <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a> as specified by the Vendor that
implemented this <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a>. Vendors are encouraged to use Semantic
Versioning.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.DeploymentUnitRef">DeploymentUnitRef</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. A reference to the DeploymentUnit (if any) by which this <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a>
was created.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.CapabilityNumberOfEntries">CapabilityNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability."><em>Capability</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.">Device.SoftwareModules.ExecEnvClass.{i}.Capability.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The standard(s) describing the kinds of <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>
which can be installed into instances of this <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a>.</p>

<p>At most one entry in this table can exist with the same values for both <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.Specification"><em>Specification</em></a> and <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.SpecificationVersion"><em>SpecificationVersion</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.Specification">Specification</span></td>
<td>string</td>
<td>R</td>
<td><p>The specification which describes the format of the
<a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.Specification.OCIImage"><em>OCIImage</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.Specification.VMRawImage"><em>VMRawImage</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.Specification.OSGiBundle"><em>OSGiBundle</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.Specification.JAR"><em>JAR</em></span> (OPTIONAL)</li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.Specification.WAR"><em>WAR</em></span> (OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.SpecificationVersion">SpecificationVersion</span></td>
<td>string(:32)</td>
<td>R</td>
<td><p>The Version of the Specification which is supported by this
<a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a>.</p>

<p>If this parameter begins with the character &ldquo;(&rdquo; or &ldquo;[&rdquo; then it MUST
end with the character &ldquo;)&rdquo; or &ldquo;]&rdquo; and it indicates a version range
which may be interpreted following Semantic Versioning rules.
Otherwise it indicates the latest version of the specification which
is known to be supported by this <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.SpecificationURI">SpecificationURI</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The URI where of the definition of the Specification may be found.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.">Device.SoftwareModules.ExecEnv.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The Execution Environments that are available on the device, along with
their properties and configurable settings.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.Name"><em>Name</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.AllocatedCPUPercent"><em>AllocatedCPUPercent</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.AvailableCPUPercent"><em>AvailableCPUPercent</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.CreatedAt"><em>CreatedAt</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ExecEnvClassRef"><em>ExecEnvClassRef</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationDataNumberOfEntries"><em>ApplicationDataNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData."><em>ApplicationData.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.Name">Name</span></td>
<td>string(:256)</td>
<td>R</td>
<td>A Name provided by the <span class="removed">CPE</span><span class="inserted">device</span> that adequately distinguishes this <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> from all other <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> instances.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed <em>:256</em> size maxLength = <em>32</em> ⇒ <em>256</em></li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.InitialRunLevel">InitialRunLevel</span></td>
<td>unsignedInt(:65535)</td>
<td>W</td>
<td><p>The run level that this <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> will be in upon startup (whether that is caused by a <span class="removed">CPE</span><span class="inserted">device</span> Boot or the Execution Environment starting).</p>

<p>Run levels dictate which Execution Units will be started. Execution Units will be started if <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.CurrentRunLevel"><em>CurrentRunLevel</em></a> is greater than or equal to <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.RunLevel"><em>ExecutionUnit.{i}.RunLevel</em></a> and <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoStart"><em>ExecutionUnit.{i}.AutoStart</em></a> is <em>true</em>.</p>

<p>If the value of <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.CurrentRunLevel"><em>CurrentRunLevel</em></a> is -1, then the value of this parameter is irrelevant when read and setting its value has no impact on the Run Level of this <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a>.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.AllocatedDiskSpace">AllocatedDiskSpace</span></td>
<td>int(-1:)</td>
<td>R</td>
<td><p>The amount of disk space measured in <em>KiB</em> allocated to this <span class="removed"><a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a>.</span><span class="inserted">ExecEnv.</span> A value of -1 <span class="removed">MUST</span><span class="inserted">indicates</span> <span class="removed">be used for <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> instances where</span><span class="inserted">that</span> this parameter is not applicable.</p>

<p>The default value SHOULD be <em>-1</em>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>int(-1:)</em> syntax <em>-1</em> default</li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.AllocatedMemory">AllocatedMemory</span></td>
<td>int(-1:)</td>
<td>R</td>
<td><p>The amount of physical RAM measured in <em>KiB</em> allocated to this <span class="removed"><a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a>.</span><span class="inserted">ExecEnv.</span> A value of -1 <span class="removed">MUST</span><span class="inserted">indicates</span> <span class="removed">be used for <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> instances where</span><span class="inserted">that</span> this parameter is not applicable.</p>

<p>The default value SHOULD be <em>-1</em>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>int(-1:)</em> syntax <em>-1</em> default</li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.AllocatedCPUPercent">AllocatedCPUPercent</span></td>
<td>int(-1:100)</td>
<td>R</td>
<td><p>The percentage of CPU time allocated to this ExecEnv, i.e. the
percentage of the whole CPU (all cores) which is available to the
parent ExecEnv (the primary firmware &ldquo;owns&rdquo; 100*%* of CPU). A
value of -1 indicates that this parameter is not applicable.</p>

<p>The default value SHOULD be <em>-1</em>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.AvailableCPUPercent">AvailableCPUPercent</span></td>
<td>int(-1:100)</td>
<td>R</td>
<td>The fraction (in <em>%</em>) of CPU time currently available to this
<a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a>. This value changes as the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>
instances associated with this <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> are started/stopped and
consume the CPU. A value of -1 MUST be used for <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> instances
where this parameter is not applicable.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.CreatedAt">CreatedAt</span></td>
<td>dateTime</td>
<td>R</td>
<td>The time and date at which this <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> was created. If the
<a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> is provided by the primary firmware of the device then
this parameter SHOULD be set to 0001-01-01T00:00:00Z.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ExecEnvClassRef">ExecEnvClassRef</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The <a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass."><em>ExecEnvClass</em></a> of which this <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> is an
instance.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationDataNumberOfEntries">ApplicationDataNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData."><em>ApplicationData</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.">Device.SoftwareModules.ExecEnv.{i}.ApplicationData.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The ApplicationData volumes which currently exist within this ExecEnv.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Alias"><em>Alias</em></a>, or with the same values for both <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.ApplicationUUID"><em>ApplicationUUID</em></a> and <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Name">Name</span></td>
<td>string(:64)</td>
<td>R</td>
<td>A name which is assigned to the ApplicationData instance at the time
of its creation, which distinguishes it from any other application
data volumes owned by the same application.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Capacity">Capacity</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Storage capacity of the volume, in <em>MiB</em>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Encrypted">Encrypted</span></td>
<td>boolean</td>
<td>R</td>
<td>Whether the data is stored on an encrypted medium.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Retain">Retain</span></td>
<td>string</td>
<td>R</td>
<td><p>The level of persistency of the volume.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Retain.UntilStopped"><em>UntilStopped</em></span></li>
<li><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Retain.Forever"><em>Forever</em></span></li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.AccessPath">AccessPath</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The path by which the Execution Units created by the Deployment Unit
may access the storage volume.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.ApplicationUUID">ApplicationUUID</span></td>
<td><span title="UUID">string(36)</span></td>
<td>R</td>
<td>[<a href="#T.UUID">UUID</a>] The <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.UUID"><em>DeploymentUnit.{i}.UUID</em></a> of the
<a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> for which this volume was created. This
parameter retains its value so long as the <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData."><em>ApplicationData</em></a> instance
continues to exist, even if the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> is not
currently installed.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.Utilization">Utilization</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The amount of data which is currently stored in this volume, in
<em>MiB</em>.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.">Device.SoftwareModules.DeploymentUnit.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This table serves as the Deployment Unit inventory and contains status
information about each Deployment Unit.</p>

<p>A new instance of this table gets created during the installation of a
Software Module.</p>

<p>At most one entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.UUID"><em>UUID</em></a>, <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.Version"><em>Version</em></a> and <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.ExecutionEnvRef"><em>ExecutionEnvRef</em></a>, or with a given value for <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.Alias"><em>Alias</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.Installed"><em>Installed</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.LastUpdate"><em>LastUpdate</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.UUID">UUID</span></td>
<td><span title="UUID">string(36)</span></td>
<td>R</td>
<td><p>[<a href="#T.UUID">UUID</a>] A Universally Unique Identifier either provided by the <span class="removed">ACS,</span><span class="inserted">Controller,</span> or generated by the <span class="removed">CPE,</span><span class="inserted">device,</span> at the time of Deployment Unit Installation.<span class="removed"> </span>The format of this value is defined by [<a href="#R.RFC4122">RFC4122</a>] Version <span class="removed">3</span><span class="inserted">5</span> (Name-Based) and [<a href="#R.TR-181i2">Annex C/TR-181i2</a>].</p>

<p>This value MUST NOT be altered when the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> is updated.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:36)</em> syntax</li>
<li>Added <em>UUID</em></li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.Name">Name</span></td>
<td>string(:256)</td>
<td>R</td>
<td><p>Indicates the Name of this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>, which is chosen by the author
of the Deployment Unit.</p>

<p>The value of this parameter is used in the generation of the
<a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.UUID"><em>UUID</em></a> based on the rules defined in [<a href="#R.TR-181i2">Annex
C/TR-181i2</a>].</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed <em>:256</em> size maxLength = <em>64</em> ⇒ <em>256</em></li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.VendorLogList">VendorLogList</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DeviceInfo.VendorLogFile."><em>DeviceInfo.VendorLogFile.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. Represents the vendor log files that have come into existence because of this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>.<span class="removed"> </span>This does not include any vendor log files that have come into existence because of <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> instances that are contained within this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>.</p>

<p>When this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> is uninstalled the vendor log files referenced here SHOULD be removed from the <span class="removed">CPE.</span><span class="inserted">device.</span></p>

<p>Not all <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> instances will actually have a corresponding vendor log file, in which case the value of this parameter will be an empty string.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.VendorConfigList">VendorConfigList</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DeviceInfo.VendorConfigFile."><em>DeviceInfo.VendorConfigFile.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. Represents the vendor config files that have come into existence because of this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>.<span class="removed"> </span>This does not include any vendor config files that have come into existence because of <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> instances that are contained within this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>.</p>

<p>When this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> is uninstalled the vendor config files referenced here SHOULD be removed from the <span class="removed">CPE.</span><span class="inserted">device.</span></p>

<p>Not all <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> instances will actually have a corresponding vendor config file, in which case the value of this parameter will be an empty string.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.Installed">Installed</span></td>
<td>dateTime</td>
<td>R</td>
<td>Documents when this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> instance was installed.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.DeploymentUnit.LastUpdate">LastUpdate</span></td>
<td>dateTime</td>
<td>R</td>
<td>Documents when this <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> instance was last updated.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.">Device.SoftwareModules.ExecutionUnit.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This table serves as the Execution Unit inventory and contains both
status information about each Execution Unit as well as configurable
parameters for each Execution Unit.</p>

<p>Each <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> that is installed can have zero or
more Execution Units.</p>

<p>Once a Deployment Unit is installed it populates this table with its
contained Execution Units.</p>

<p>When the Deployment Unit (that caused this <em>ExecutionUnit</em> to come into
existence) is updated, this instance MAY be removed and new instances
MAY come into existence. While the Deployment Unit (that caused this
<em>ExecutionUnit</em> to come into existence) is being updated, all <em>ExecutionUnit</em>
instances associated with the Deployment Unit will be stopped until the
update is complete at which time they will be restored to the state
that they were in before the update started.</p>

<p>When the Deployment Unit (that caused this <em>ExecutionUnit</em> to come into
existence) is uninstalled, this instance is removed.</p>

<p>Each <em>ExecutionUnit</em> MAY also contain a set of vendor specific parameters
displaying status and maintaining configuration that reside under the
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.Extensions."><em>Extensions</em></a> object.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.EUID"><em>EUID</em></a>, or with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.Alias"><em>Alias</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AllocatedDiskSpace"><em>AllocatedDiskSpace</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AllocatedMemory"><em>AllocatedMemory</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AllocatedCPUPercent"><em>AllocatedCPUPercent</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.CPUPercentInUse"><em>CPUPercentInUse</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.ApplicationDataList"><em>ApplicationDataList</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObjectNumberOfEntries"><em>HostObjectNumberOfEntries</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart."><em>AutoRestart.</em></a> object</li>
<li>Added <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject."><em>HostObject.{i}.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.Name">Name</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The name of this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> as it pertains to its associated
<a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>, which SHOULD be unique across all
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> instances contained within its associated
<a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a>.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed <em>:256</em> size maxLength = <em>32</em> ⇒ <em>256</em></li></ul></div></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultMessage">ExecutionFaultMessage</span></td>
<td>string(:256)</td>
<td>R</td>
<td><p>If while running or transitioning between states this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> identifies a fault this parameter provides a more detailed explanation of the problem.</p>

<p>If <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode"><em>ExecutionFaultCode</em></a> has the value of <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.ExecutionFaultCode.NoFault"><em>NoFault</em></a> then the value of this parameter MUST be an empty string and ignored by the <span class="removed">ACS.</span><span class="inserted">Controller.</span></p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoStart">AutoStart</span></td>
<td>boolean</td>
<td>W</td>
<td><p>If <em>true</em> and the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.RunLevel"><em>RunLevel</em></a> verification is also met, then this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> will be automatically started by the device after its <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> is either rebooted or restarted.</p>

<p>If <em>false</em> this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> will not be started after its <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> is either rebooted or restarted until it is explicitly commanded to do so by either the <span class="removed">ACS</span><span class="inserted">Controller</span> or another Execution Unit.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AllocatedDiskSpace">AllocatedDiskSpace</span></td>
<td>int(-1:)</td>
<td>R</td>
<td>The amount of disk space measured in <em>KiB</em> allocated to this
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>. A value of -1 MUST be used for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> instances where
this parameter is not applicable.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AllocatedMemory">AllocatedMemory</span></td>
<td>int(-1:)</td>
<td>R</td>
<td>The amount of physical RAM measured in <em>KiB</em> allocated to this
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>. A value of -1 MUST be used for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> instances where
this parameter is not applicable.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AllocatedCPUPercent">AllocatedCPUPercent</span></td>
<td>int(-1:100)</td>
<td>R</td>
<td>The CPU power allocated to this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>, as a fraction (in
<em>%</em>) of the CPU allocation of the <a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> in which
this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> resides. A value of -1 MUST be used for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>
instances where this parameter is not applicable.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.CPUPercentInUse">CPUPercentInUse</span></td>
<td>int(-1:100)</td>
<td>R</td>
<td>The CPU power currently being used by this by this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>, as a
fraction (in <em>%</em>) of the CPU allocation of the
<a href="#D.Device:2.Device.SoftwareModules.ExecEnv."><em>ExecEnv</em></a> in which this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> resides. A value of -1
MUST be used for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> instances where this parameter is not
applicable.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.References">References</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Each list item MUST be the Path Name of a table row, or an empty string. Represents the instances of multi-instanced objects that are directly controlled by, and have come into existence because of, this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>.<span class="removed"> </span>See [<a href="#R.TR-069">Appendix VI.3.2/TR-069</a>] for more description and some examples.</p>

<p>NOTE: All other objects and parameters (i.e. not multi-instanced objects) that this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> has caused to come into existence can be discovered via the <strong>{{object: non-existent <span class="inserted">##.DeviceInfo.SupportedDataModel</span>}}</strong> table.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.VendorLogList">VendorLogList</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DeviceInfo.VendorLogFile."><em>DeviceInfo.VendorLogFile.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. Represents the vendor log files that have come into existence because of this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>.</p>

<p>When the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> (that caused this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> to come into existence) is uninstalled the vendor log files referenced here SHOULD be removed from the <span class="removed">CPE.</span><span class="inserted">device.</span></p>

<p>Not all <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> instances will actually have a corresponding vendor log file, in which case the value of this parameter will be an empty string.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.VendorConfigList">VendorConfigList</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.DeviceInfo.VendorConfigFile."><em>DeviceInfo.VendorConfigFile.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. Represents the vendor config files that have come into existence because of this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>.</p>

<p>When the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>DeploymentUnit</em></a> (that caused this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> to come into existence) is uninstalled the vendor config files referenced here SHOULD be removed from the <span class="removed">CPE.</span><span class="inserted">device.</span></p>

<p>Not all <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> instances will actually have a corresponding vendor config file, in which case the value of this parameter will be an empty string.</p></td>
<td>-</td>
<td>2.1</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.ApplicationDataList">ApplicationDataList</span></td>
<td>string[]</td>
<td>R</td>
<td>Comma-separated list of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData."><em>ExecEnv.{i}.ApplicationData.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. Represents the application data volumes that are used by this
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObjectNumberOfEntries">HostObjectNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject."><em>HostObject</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.">Device.SoftwareModules.ExecutionUnit.{i}.AutoRestart.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Configures the parameters of the auto-restart algorithm for this
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>.</p>

<p>An auto-restart may be triggered if the Agent determines that the EU
has terminated abnormally. An exponential backoff algorithm is applied
(increasing each time the delay before the EU is re-launched) in order
to prevent continual re-starting of the EU.</p>

<p>The retry interval range is controlled by two Parameters,
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryMinimumWaitInterval"><em>RetryMinimumWaitInterval</em></a> and
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryIntervalMultiplier"><em>RetryIntervalMultiplier</em></a>.</p>

<p>Let <em>m</em> be the value of <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryMinimumWaitInterval"><em>RetryMinimumWaitInterval</em></a>, <em>k</em> the
value of <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryIntervalMultiplier"><em>RetryIntervalMultiplier</em></a>, and <em>n</em> the current value
of <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryCount"><em>RetryCount</em></a>. Then on the next occasion that the Agent
determines that the EU has terminated abnormally, the delay before
re-starting the EU must lie between <em>m * (k/1000)^n</em> and <em>m *
(k/1000)^(n+1)</em> seconds, so long as <em>m * (k/1000)^n</em> evaluates to a
value less than <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryMaximumWaitInterval"><em>RetryMaximumWaitInterval</em></a>. Once this point has
been reached, on all subsequent occasion that the Agent determines that
the EU has terminated abnormally the delay before re-starting the EU
must lie between <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryMaximumWaitInterval"><em>RetryMaximumWaitInterval</em></a>* * (1000/k)* and
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryMaximumWaitInterval"><em>RetryMaximumWaitInterval</em></a> seconds.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enable the auto-restart feature for this <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a>.</p>

<p>The default value SHOULD be <em>false</em>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryMinimumWaitInterval">RetryMinimumWaitInterval</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Configures the initial delay in <em>seconds</em> between detecting that the
EU has terminated abnormally and re-starting it.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryMaximumWaitInterval">RetryMaximumWaitInterval</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Configures the maximum delay in <em>seconds</em> between detecting that the
EU has terminated abnormally and re-starting it.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryIntervalMultiplier">RetryIntervalMultiplier</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Configures the retry interval multiplier. This value is expressed in
units of 0.001, so for example a value of 2000 will result in the
retry interval being doubled each time.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.MaximumRetryCount">MaximumRetryCount</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Configures the maximum number of consecutive restarts (as shown in
<a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryCount"><em>RetryCount</em></a>) after which no more attempts will be performed.
A value of zero means that the number of attempts is unlimited.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.ResetPeriod">ResetPeriod</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>If the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> runs for this number of <em>seconds</em> without
terminating abnormally the Agent MAY reset the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryCount"><em>RetryCount</em></a>
to zero, thereby resetting the exponential backoff algorithm. A value
of zero disables this behavior.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.RetryCount">RetryCount</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>The number of restart attempts which have been initiated so far.
Resetting this parameter to zero has the effect of re-initialising
the exponential back-off algorithm.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.LastRestarted">LastRestarted</span></td>
<td>dateTime</td>
<td>R</td>
<td>The time at which the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> was last re-started. Initially
this parameter is set to the Unknown Time (0001-01-01T00:00:00Z).</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.NextRestart">NextRestart</span></td>
<td>dateTime</td>
<td>R</td>
<td>The time at which the next restart of the <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit."><em>ExecutionUnit</em></a> is scheduled
to occur. The Infinte Time (9999-12-31T23:59:59Z) is used to indicate
that no restart is currently scheduled.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject.">Device.SoftwareModules.ExecutionUnit.{i}.HostObject.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This parameter describes the host OS objects (such as peripherals,
files or directories, communication sockets, …) which are accessible
to the ExecutionUnit.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject.Destination"><em>Destination</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject.Source">Source</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The object identifier by which the object may be accessed in the host
OS environment. This object identifier MUST be valid in the host OS
environment. For security reasons, Execution Environments may impose
restrictions on the object identifiers which may be specified.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject.Destination">Destination</span></td>
<td>string(:256)</td>
<td>R</td>
<td>The object identifier by which the object may be accessed by the
ExecutionUnit. This object identifier MUST be valid in the context of
the Execution Environment in which the ExecutionUnit is installed.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject.Options">Options</span></td>
<td>string(:256)</td>
<td>R</td>
<td>May be used to pass implementation-dependent options which are to be
applied to the mapping,</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.XMPP.">Device.XMPP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The <em>XMPP</em> represents the XMPP capabilities of the
device, as described in [<a href="#R.TR-069">Appendix III/TR-069</a>].</td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.XMPP.Connection.">Device.XMPP.Connection.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>The <em>Connection</em> represents a XMPP connection between the device and a
server. The <a href="#D.Device:2.Device.XMPP.Connection.Username"><em>Username</em></a>, <a href="#D.Device:2.Device.XMPP.Connection.Domain"><em>Domain</em></a> and <a href="#D.Device:2.Device.XMPP.Connection.Resource"><em>Resource</em></a>
comprise the full identity (JabberID) of this <em>Connection</em> for this
device.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.XMPP.Connection.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.XMPP.Connection.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.XMPP.Connection.Username"><em>Username</em></a>, <a href="#D.Device:2.Device.XMPP.Connection.Domain"><em>Domain</em></a> and <a href="#D.Device:2.Device.XMPP.Connection.Resource"><em>Resource</em></a>.</p></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.XMPP.Connection.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used to authenticate this <a href="#D.Device:2.Device.XMPP.Connection."><em>Connection</em></a> when making a
connection to the <a href="#D.Device:2.Device.XMPP.Connection.Server."><em>Server</em></a> using the procedure outlined in
[<a href="#R.RFC6120">Section 6/RFC6120</a>].</p>

<p>Note that on a factory reset of the CPE, the value of this parameter
might be reset to its factory value. If a Controller modifies the
value of this parameter, it SHOULD be prepared to accommodate the
situation that the original value is restored as the result of a
factory reset.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.7</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE1905.">Device.IEEE1905.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the management functions for the 1905
capabilities as defined in [<a href="#R.IEEE1905.1a">IEEE1905.1a</a>].</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE1905.AL.">Device.IEEE1905.AL.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the management functions for the 1905
Abstraction Layer as defined in [<a href="#R.IEEE1905.1a">Section 4.4
Abstraction Layer/IEEE1905.1a</a>].</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.IEEE1905.AL.Security.">Device.IEEE1905.AL.Security.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the Security configuration for the 1905 device
as defined in [<a href="#R.IEEE1905.1a">Section 9.2 Security Setup
Methods/IEEE1905.1a</a>].</td>
<td>-</td>
<td>2.9</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.IEEE1905.AL.Security.Password">Password</span></td>
<td>string</td>
<td>W</td>
<td><p>1905 network passphrase for generating security keys.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax hidden = <em>true</em></li>
<li>Added <em>string</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.9</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.">Device.MQTT.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>MQTT Base object describing all MQTT related parameters and objects.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Client.">Device.MQTT.Client.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>MQTT client table. Contains a list of configured MQTT clients.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Client.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.MQTT.Client.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.MQTT.Client.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.MQTT.Client.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.MQTT.Client.Interface"><em>Interface</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.MQTT.Client.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The IP Interface associated with the <a href="#D.Device:2.Device.MQTT.Client."><em>Client</em></a> entry.</p>

<p>If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Client.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used to authenticate the MQTT client when making a
connection to the MQTT broker. The value is sent in the MQTT CONNECT
packet (see [<a href="#R.MQTT311">Section 3.1/MQTT311</a>], [<a href="#R.MQTT311">Section
3.1.3.5/MQTT311</a>] or [<a href="#R.MQTT50">Section 3.1.3.6/MQTT50</a>]).</p>

<p>This password is only sent in the MQTT CONNECT packet if
<a href="#D.Device:2.Device.MQTT.Client.Username"><em>Username</em></a> is not an empty string.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Broker.">Device.MQTT.Broker.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>MQTT broker table. Contains a list of configured MQTT brokers.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.MQTT.Broker.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.MQTT.Broker.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used used to authenticate the MQTT clients, which connect to
the MQTT broker.</p>

<p>This password is only used if <a href="#D.Device:2.Device.MQTT.Broker.Username"><em>Username</em></a> is not an empty string.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.">Device.MQTT.Broker.{i}.Bridge.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Configures MQTT bridges, which are used to communicate with other MQTT
brokers.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.MQTT.Broker.Bridge.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.MQTT.Broker.Bridge.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used to authenticate the MQTT broker when making a
connection over the MQTT bridge. The value is sent in the MQTT
CONNECT packet (see [<a href="#R.MQTT311">Section 3.1/MQTT311</a>],
[<a href="#R.MQTT311">Section 3.1.3.5/MQTT311</a>] or [<a href="#R.MQTT50">Section
3.1.3.6/MQTT50</a>]).</p>

<p>This password is only sent in the MQTT CONNECT packet if
<a href="#D.Device:2.Device.MQTT.Broker.Bridge.Username"><em>Username</em></a> is not an empty string.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DynamicDNS.">Device.DynamicDNS.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Properties for Dynamic DNS.</td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DynamicDNS.Client.">Device.DynamicDNS.Client.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Client properties for Dynamic DNS.</p>

<p>A dynamic DNS client is responsible for verifying IP address changes
and updating information from a subscribed account on a Dynamic DNS
Server.</p>

<p>For enabled table entries, if <a href="#D.Device:2.Device.DynamicDNS.Client.Server"><em>Server</em></a> is not a valid reference
then the table entry is inoperable and the CPE MUST set the
<a href="#D.Device:2.Device.DynamicDNS.Client.Status"><em>Status</em></a> to <a href="#D.Device:2.Device.DynamicDNS.Client.Status.Error_Misconfigured"><em>Error_Misconfigured</em></a>.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DynamicDNS.Client.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DynamicDNS.Client.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for both <a href="#D.Device:2.Device.DynamicDNS.Client.Server"><em>Server</em></a> and <a href="#D.Device:2.Device.DynamicDNS.Client.Username"><em>Username</em></a>.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DynamicDNS.Client.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The IP interface over which update queries to the server are sent.</p>

<p><span class="removed">The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string.</span></p>

<div class="inserted">If the value is an empty string, the CPE MUST use its routing policy (IP
Forwarding table entries), if necessary, to determine the appropriate
interface.</div>

<p><span class="removed">If an empty string is specified, the CPE MUST use its routing policy (Forwarding table entries), to determine the appropriate interface.</span><span class="inserted">The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string.</span></p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DynamicDNS.Client.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password used by this Dynamic DNS Client to authenticate with the
Server.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.DynamicDNS.Server.">Device.DynamicDNS.Server.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Table of Dynamic DNS servers available for this CPE.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.DynamicDNS.Server.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.DynamicDNS.Server.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.DynamicDNS.Server.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.DynamicDNS.Server.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enables or disables Dynamic DNS Server.</p>

<p><span class="inserted">Note: This parameter was previously wrongly defined as a string.</span></p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>string(:64)</em> -&gt; <em>boolean</em></li></ul></div></td>
<td>-</td>
<td>2.10</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LMAP.">Device.LMAP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents the objects necessary to manage and control the
functionality for Large-Scale Measurement of Broadband
Performance[<a href="#R.RFC7594">RFC7594</a>] as defined in by [<a href="#R.LMAPIFM">LMAPIFM</a>].</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.">Device.LMAP.MeasurementAgent.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object represents the measurement agent that performs measurement
tasks and reporting functions defined in [<a href="#R.RFC7594">RFC7594</a>].</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Identifier"><em>Identifier</em></a>.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Controller.">Device.LMAP.MeasurementAgent.{i}.Controller.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This objects represents the measurement controller that is assigned to
a measurement agent.</td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Controller.ControllerTimeout">ControllerTimeout</span></td>
<td>int(0:)</td>
<td>W</td>
<td><p>The timer, in <em>seconds</em>, that is started after each successful contact with a measurement controller.</p>

<p>When the timer reaches the timeout <span class="removed">en</span><span class="inserted">an</span> event is raised indicating that connectivity to the controller has been lost.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Schedule.">Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object represents a schedule that is associated with a set of
scheduled actions to be performed by a measurement agent.</p>

<p>Note: Actions of an occurrence of this <em>Schedule</em> are gracefully
terminated by the defining either the <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.End"><em>End</em></a> or
<a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Duration"><em>Duration</em></a> parameters. Only one of these parameters may be
defined at a time.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.">Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object represents an action that is associated with the this
<a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule."><em>Schedule</em></a> object.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.Option.">Device.LMAP.MeasurementAgent.{i}.Schedule.{i}.Action.{i}.Option.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object represents an option associated with the Scheduled Action.
When an option with the same Name exists between the Seheduled Action’s
Option and The Task’s option, the option of the Scheduled Action takes
precedence over the option associated with the Task.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.Option.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.Option.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.Option.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.Option.Name">Name</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The name of the option.</p>

<p>When the value of this parameter is equal to &ldquo;channel&rdquo;, the option
value specifies the Communication Channel used for this scheduled
task.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>int</em> -&gt; <em>string(:256)</em></li></ul></div></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Task.">Device.LMAP.MeasurementAgent.{i}.Task.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>The <em>Task</em> object defines the configuration for a task that can be
performed by <a href="#D.Device:2.Device.LMAP.MeasurementAgent."><em>MeasurementAgent</em></a> objects.</p>

<p>Tasks are performed by <a href="#D.Device:2.Device.LMAP.MeasurementAgent."><em>MeasurementAgent</em></a> objects when a
<a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule."><em>Schedule</em></a> object invokes the Task.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Task.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Task.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Task.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Task.Option.">Device.LMAP.MeasurementAgent.{i}.Task.{i}.Option.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object represents an option associated with the task.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Task.Option.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Task.Option.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.LMAP.MeasurementAgent.Task.Option.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.LMAP.MeasurementAgent.Task.Option.Name">Name</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The name of the option.</p>

<p>When the value of this parameter is equal to &ldquo;channel&rdquo;, the option
value specifies the Communication Channel used for this task.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed syntax = <em>int</em> -&gt; <em>string(:256)</em></li></ul></div></td>
<td>-</td>
<td>2.12</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PDU.">Device.PDU.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The logical connection between the 5G-RG and data network is the
Protocol Data Unit (PDU). The Device.PDU subtree describes each PDU
sessions properties together with the QoS rules specific to that PDU
session.</td>
<td>-</td>
<td>2.14</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PDU.Session.">Device.PDU.Session.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Contains all the properties of a PDU session instance, ranging from
maximum bitrate through to assigned network slice. This object contains
the <em>Session</em> table.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.PDU.Session.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.PDU.Session.SessionID"><em>SessionID</em></a>.</p></td>
<td>-</td>
<td>2.14</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PDU.Session.PCO.">Device.PDU.Session.{i}.PCO.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Policy Configuration Options (PCO) is an optional set of configuration
parameters supplied by the network at the request of the 5G-RG as
defined in [<a href="#R.3GPP-TS.24.008">Clause 10.5.6.3/3GPP-TS.24.008</a>].</td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PDU.Session.PCO.IPv6DNS">IPv6DNS</span></td>
<td>string(:256)[]</td>
<td>R</td>
<td>Comma-separated list of strings (maximum number of characters per item 256). <span class="removed">A</span><span class="inserted">Each</span> <span class="removed">comma</span><span class="inserted">entry</span> <span class="removed">separated</span><span class="inserted">is</span> <span class="removed">list of</span><span class="inserted">an</span> IPv6 DNS <span class="removed">servers.</span><span class="inserted">server.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>string(:256)[]</em> syntax <em>[]</em> list</li></ul></div></td>
<td>-</td>
<td>2.14</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PDU.Session.PCO.IPv4DNS">IPv4DNS</span></td>
<td>string(:256)[]</td>
<td>R</td>
<td>Comma-separated list of strings (maximum number of characters per item 256). <span class="removed">A</span><span class="inserted">Each</span> <span class="removed">comma</span><span class="inserted">entry</span> <span class="removed">separated</span><span class="inserted">is</span> <span class="removed">list of</span><span class="inserted">an</span> IPv4 DNS <span class="removed">servers.</span><span class="inserted">server.</span>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>string(:256)[]</em> syntax <em>[]</em> list</li></ul></div></td>
<td>-</td>
<td>2.14</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.FWE.">Device.FWE.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>5G Wireline wireless Encapsulation transport for data plane. See <strong>{{bibref: non-existent <span class="inserted">RFC8822</span>}}</strong>.</td>
<td>-</td>
<td>2.14</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Logical.">Device.Logical.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Logical object. This object models several Logical interface objects,
each representing a different stack layer, including:
<a href="#D.Device:2.Device.Logical.Interface."><em>Interface</em></a>. <a href="#D.Device:2.Device.Logical.Interface."><em>Interface</em></a> is a logical interface which
can point to other stackable interface layers.</p>

<p>The intention of the logical interface is to simplify the configuration
management of individual [<a href="#R.TR-181i2">TR-181i2</a>] services. Instead of
configuring the individual network services with a physical interface
and deal with reconfiguration problems that may arise from switching
between WAN interfaces. The intention is that the network services are
configured with a logical interface and that this configuration stays
unchanged during the switching between WAN interfaces. The software
service (For example a WAN mode manger.) responsible for handling the
WAN interface changes must then only care about rewriting the
LowerLayers parameter of the Logical Interface Objects.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.InterfaceNumberOfEntries">InterfaceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.Logical.Interface."><em>Interface</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Logical.Interface.">Device.Logical.Interface.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Logical interface table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). This table models only logical
interfaces.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.Logical.Interface.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.Logical.Interface.Name"><em>Name</em></a>. On creation of a new table entry, the Agent MUST choose initial values for <a href="#D.Device:2.Device.Logical.Interface.Alias"><em>Alias</em></a> and <a href="#D.Device:2.Device.Logical.Interface.Name"><em>Name</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the interface. This parameter is based on
<em>ifAdminStatus</em> from [<a href="#R.RFC2863">RFC2863</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current operational state of the logical interface (see
[<a href="#R.TR-181i2">Section 4.2.2/TR-181i2</a>]). Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.Logical.Interface.Status.Up"><em>Up</em></span> (When <a href="#D.Device:2.Device.Logical.Interface.Enable"><em>Enable</em></a> is changed to <em>true</em> then <a href="#D.Device:2.Device.Logical.Interface.Status"><em>Status</em></a> SHOULD change to <a href="#D.Device:2.Device.Logical.Interface.Status.Up"><em>Up</em></a> if and only if all the active lower layer interfaces are able to transmit and receive network traffic)</li>
<li><span id="D.Device:2.Device.Logical.Interface.Status.Down"><em>Down</em></span> (When <a href="#D.Device:2.Device.Logical.Interface.Enable"><em>Enable</em></a> is <em>false</em> then <a href="#D.Device:2.Device.Logical.Interface.Status"><em>Status</em></a> SHOULD normally be <a href="#D.Device:2.Device.Logical.Interface.Status.Down"><em>Down</em></a>)</li>
<li><span id="D.Device:2.Device.Logical.Interface.Status.Unknown"><em>Unknown</em></span> (It SHOULD change to <a href="#D.Device:2.Device.Logical.Interface.Status.Unknown"><em>Unknown</em></a> if the state of one or more of the active lower interfaces can not be determined for some reason)</li>
<li><span id="D.Device:2.Device.Logical.Interface.Status.Dormant"><em>Dormant</em></span> (It SHOULD change to <a href="#D.Device:2.Device.Logical.Interface.Status.Dormant"><em>Dormant</em></a> if and only if one ore more of the active lower interfaces is operable but is waiting for external actions before it can transmit and receive network traffic (and subsequently change to <a href="#D.Device:2.Device.Logical.Interface.Status.Up"><em>Up</em></a> if still operable when the expected actions have completed))</li>
<li><span id="D.Device:2.Device.Logical.Interface.Status.NotPresent"><em>NotPresent</em></span> (It SHOULD remain in the <a href="#D.Device:2.Device.Logical.Interface.Status.NotPresent"><em>NotPresent</em></a> state if the interface, or one or more of the active lower interfaces has missing (typically hardware) components)</li>
<li><span id="D.Device:2.Device.Logical.Interface.Status.LowerLayerDown"><em>LowerLayerDown</em></span> (It SHOULD change to <a href="#D.Device:2.Device.Logical.Interface.Status.LowerLayerDown"><em>LowerLayerDown</em></a> if and only if one or more of the active lower interfaces is prevented from entering the <a href="#D.Device:2.Device.Logical.Interface.Status.Up"><em>Up</em></a> state because one or more of the interfaces beneath it is down)</li>
<li><span id="D.Device:2.Device.Logical.Interface.Status.Error"><em>Error</em></span> (It SHOULD remain in the <a href="#D.Device:2.Device.Logical.Interface.Status.Error"><em>Error</em></a> state if there is an error or other fault condition detected with one more of the active lower layer interfaces, OPTIONAL)
This parameter is based
on <em>ifOperStatus</em> from [<a href="#R.RFC2863">RFC2863</a>].</li></ul></td>
<td>Down</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Name">Name</span></td>
<td>string(:64)</td>
<td>W</td>
<td><p>The textual name of the logical interface as assigned by a static
configuration file or dynamically by a controller.</p>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.LastChange">LastChange</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The accumulated time in <em>seconds</em> since the logical interface entered
its current operational state.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.LowerLayers">LowerLayers</span></td>
<td>string[](:1024)</td>
<td>W</td>
<td>Comma-separated list (maximum number of characters 1024) of strings. Each list item MUST be the Path Name of an interface object that is stacked immediately
below this interface object, or an empty string. See [<a href="#R.TR-181i2">Section 4.2.1/TR-181i2</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.">Device.Logical.Interface.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Throughput statistics for this interface. The CPE MUST reset the
interface’s Stats parameters (unless otherwise stated in individual
object or parameter descriptions) either when the interface becomes
operationally down due to a previous administrative down (i.e. the
interface’s <a href="#D.Device:2.Device.Logical.Interface.Status"><em>Status</em></a> parameter transitions to a down state
after the interface is disabled) or when the interface becomes
administratively up (i.e. the interface’s <a href="#D.Device:2.Device.Logical.Interface.Enable"><em>Enable</em></a> parameter
transitions from <em>false</em> to <em>true</em>). Administrative and operational
interface status is discussed in [<a href="#R.TR-181i2">Section 4.2.2/TR-181i2</a>].</p>

<p>This information SHOULD be mirrored or aggregated from the active
underlaying interfaces.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.BytesSent">BytesSent</span></td>
<td>unsignedLong</td>
<td>R</td>
<td><p>The total number of bytes transmitted out of the interface, including
framing characters.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.BytesReceived">BytesReceived</span></td>
<td>unsignedLong</td>
<td>R</td>
<td><p>The total number of bytes received on the interface, including
framing characters.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.PacketsSent">PacketsSent</span></td>
<td>unsignedLong</td>
<td>R</td>
<td><p>The total number of packets transmitted out of the interface.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.PacketsReceived">PacketsReceived</span></td>
<td>unsignedLong</td>
<td>R</td>
<td><p>The total number of packets received on the interface.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.ErrorsSent">ErrorsSent</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The total number of outbound packets that could not be transmitted
because of errors.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.ErrorsReceived">ErrorsReceived</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The total number of inbound packets that contained errors preventing
them from being delivered to a higher-layer protocol.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.UnicastPacketsSent">UnicastPacketsSent</span></td>
<td>unsignedLong</td>
<td>R</td>
<td><p>The total number of packets requested for transmission which were not
addressed to a multicast or broadcast address at this layer,
including those that were discarded or not sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.UnicastPacketsReceived">UnicastPacketsReceived</span></td>
<td>unsignedLong</td>
<td>R</td>
<td><p>The total number of received packets, delivered by this layer to a
higher layer, which were not addressed to a multicast or broadcast
address at this layer.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.DiscardPacketsSent">DiscardPacketsSent</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The total number of outbound packets which were chosen to be
discarded even though no errors had been detected to prevent their
being transmitted. One possible reason for discarding such a packet
could be to free up buffer space.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.DiscardPacketsReceived">DiscardPacketsReceived</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The total number of inbound packets which were chosen to be discarded
even though no errors had been detected to prevent their being
delivered. One possible reason for discarding such a packet could be
to free up buffer space.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.MulticastPacketsSent">MulticastPacketsSent</span></td>
<td>unsignedLong</td>
<td>R</td>
<td><p>The total number of packets that higher-level protocols requested for
transmission and which were addressed to a multicast address at this
layer, including those that were discarded or not sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.MulticastPacketsReceived">MulticastPacketsReceived</span></td>
<td>unsignedLong</td>
<td>R</td>
<td><p>The total number of received packets, delivered by this layer to a
higher layer, which were addressed to a multicast address at this
layer.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.BroadcastPacketsSent">BroadcastPacketsSent</span></td>
<td>unsignedLong</td>
<td>R</td>
<td>The total number of packets that higher-level protocols requested for
transmission and which were addressed to a broadcast address at this
layer, including those that were discarded or not sent. Note that
IPv6 does not define broadcast addresses, so IPv6 packets will never
cause this counter to increment.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.BroadcastPacketsReceived">BroadcastPacketsReceived</span></td>
<td>unsignedLong</td>
<td>R</td>
<td>The total number of received packets, delivered by this layer to a
higher layer, which were addressed to a broadcast address at this
layer. Note that IPv6 does not define broadcast addresses, so IPv6
packets will never cause this counter to increment.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.Logical.Interface.Stats.UnknownProtoPacketsReceived">UnknownProtoPacketsReceived</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The total number of packets received via the interface which were
discarded because of an unknown or unsupported protocol.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.">Device.XPON.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object models one or more xPON interfaces or ONUs as specified by
the ITU based PON standards. It does not address IEEE based PON
standards (like EPON). An ONU performs tasks such as traffic
classification, VLAN manipulation, GEM port mapping, aggregation and/or
forwarding between one or more UNIs and one or more ANIs.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONUNumberOfEntries">ONUNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.XPON.ONU."><em>ONU</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.">Device.XPON.ONU.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object models one xPON interface or ONU as specified by the ITU
based PON standards.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.XPON.ONU.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables this ONU. If disabled, the ONU should prevent
user traffic from flowing, suppress notifications, and power down as
much as possible.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.Name">Name</span></td>
<td>string(:64)</td>
<td>R</td>
<td>The textual name of the ONU as assigned by the CPE.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.Version">Version</span></td>
<td>string(:14)</td>
<td>R</td>
<td><p>This attribute identifies the version of the ONU as defined by the
vendor.</p>

<p>This parameter is based on <em>Version</em> from [<a href="#R.G.988">Section
9.1.1/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EquipmentID">EquipmentID</span></td>
<td>string(:20)</td>
<td>R</td>
<td><p>This attribute may be used to identify the specific type of ONU.</p>

<p>This parameter is based on <em>Equipment ID</em> from
[<a href="#R.G.988">Section 9.1.2/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.SoftwareImageNumberOfEntries">SoftwareImageNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.XPON.ONU.SoftwareImage."><em>SoftwareImage</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNINumberOfEntries">EthernetUNINumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI."><em>EthernetUNI</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANINumberOfEntries">ANINumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.XPON.ONU.ANI."><em>ANI</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.SoftwareImage.">Device.XPON.ONU.{i}.SoftwareImage.{i}.</span></td>
<td><span title="object(0:2)">object(0:2)</span></td>
<td>R</td>
<td><p>This table models the software images stored in the ONU.</p>

<p>It is expected this table has two entries: the ONU normally creates two
instances of the Software Image ME to model the 2 software images in
the ONU.</p>

<p>This object is based on [<a href="#R.G.988">Section 9.1.4/G.988</a>].</p>

<p>This table MUST contain at least 0 and at most 2 entries.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.XPON.ONU.SoftwareImage.ID"><em>ID</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.SoftwareImage.ID">ID</span></td>
<td>unsignedInt(0:1)</td>
<td>R</td>
<td>The ID as assigned by the CPE to this <a href="#D.Device:2.Device.XPON.ONU.SoftwareImage."><em>SoftwareImage</em></a> entry.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.SoftwareImage.Version">Version</span></td>
<td>string(:14)</td>
<td>R</td>
<td><p>A string identifying the software version.</p>

<p>This parameter is based on <em>Version</em> from [<a href="#R.G.988">Section
9.1.4/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.SoftwareImage.IsCommitted">IsCommitted</span></td>
<td>boolean</td>
<td>R</td>
<td><p>This parameter indicates whether or not the associated software image
is committed.</p>

<p>This parameter is based on <em>Is committed</em> from
[<a href="#R.G.988">Section 9.1.4/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.SoftwareImage.IsActive">IsActive</span></td>
<td>boolean</td>
<td>R</td>
<td><p>This parameter indicates whether the associated software image is
active (<em>true</em>) or inactive (<em>false</em>).</p>

<p>This parameter is based on <em>Is active</em> from [<a href="#R.G.988">Section
9.1.4/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.SoftwareImage.IsValid">IsValid</span></td>
<td>boolean</td>
<td>R</td>
<td><p>This parameter indicates whether the associated software image is
valid (<em>true</em>) or invalid (<em>false</em>).</p>

<p>This parameter is based on <em>Is valid</em> from [<a href="#R.G.988">Section
9.1.4/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.">Device.XPON.ONU.{i}.EthernetUNI.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Ethernet UNI table (a stackable interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>]). This object models User Network
Interfaces carrying Ethernet frames.</p>

<p>An EthernetUNI can be a virtual or a physical UNI. If the ONU is
managed via OMCI, an EthernetUNI has an associated service, which is
either a VEIP (see [<a href="#R.G.988">Section 9.5.5/G.988</a>]) or a PPTP Ethernet
UNI (see [<a href="#R.G.988">Section 9.5.1/G.988</a>]).</p>

<p>If the associated service is a VEIP, the ONU shows a VEIP ME in the
OMCI MIB. If it’s a PPTP Ethernet UNI, the ONU shows a PPTP Ethernet
UNI ME in the OMCI MIB. It is expected the associated service is a VEIP
for a virtual UNI, and that it is a PPTP Ethernet UNI for a physical
UNI. However, some network operators require that the ONU shows a PPTP
Ethernet UNI ME instead of a VEIP ME in its OMCI MIB even if the
EthernetUNI models a virtual UNI.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Enable">Enable</span></td>
<td>boolean</td>
<td>R</td>
<td><p>Indicates whether this interface is enabled (<em>true</em>) or not
(<em>false</em>). If the ONU is managed via OMCI, the interface is enabled
if the OLT set the parameter <em>Administrative state</em> of the ME
managing the associated service to 0. (The value 0 unlocks the
functions performed by the ME.) The ME is either the VEIP ME (see
[<a href="#R.G.988">Section 9.5.5/G.988</a>]) or the PPTP Ethernet UNI ME (see
[<a href="#R.G.988">Section 9.5.1/G.988</a>].</p>

<p>This parameter is based on <em>ifAdminStatus</em> from [<a href="#R.RFC2863">RFC2863</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current operational state of the interface (see
[<a href="#R.TR-181i2">Section 4.2.2/TR-181i2</a>]). Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Up"><em>Up</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Down"><em>Down</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Unknown"><em>Unknown</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Dormant"><em>Dormant</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Status.NotPresent"><em>NotPresent</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Status.LowerLayerDown"><em>LowerLayerDown</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Error"><em>Error</em></span> (OPTIONAL)</li></ul>

<p>When <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Enable"><em>Enable</em></a> is <em>false</em> then <em>Status</em> SHOULD normally be
<a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Down"><em>Down</em></a> (or <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.NotPresent"><em>NotPresent</em></a> or <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Error"><em>Error</em></a> if there is a
fault condition on the interface).</p>

<p>When <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Enable"><em>Enable</em></a> becomes <em>true</em> then <em>Status</em> SHOULD change
to <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Up"><em>Up</em></a> if and only if the interface is able to transmit and
receive network traffic; it SHOULD change to <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Dormant"><em>Dormant</em></a> if and
only if the interface is operable but is waiting for external actions
before it can transmit and receive network traffic (and subsequently
change to <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Up"><em>Up</em></a> if still operable when the expected actions
have completed); it SHOULD change to <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.LowerLayerDown"><em>LowerLayerDown</em></a> if and
only if the interface is prevented from entering the <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Up"><em>Up</em></a>
state because one or more of the interfaces beneath it is down; it
SHOULD remain in the <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Error"><em>Error</em></a> state if there is an error or
other fault condition detected on the interface; it SHOULD remain in
the <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.NotPresent"><em>NotPresent</em></a> state if the interface has missing (typically
hardware) components; it SHOULD change to <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Unknown"><em>Unknown</em></a> if the
state of the interface can not be determined for some reason.</p>

<p>If the ONU is managed via OMCI, then <em>Status</em> can only be
<a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status.Up"><em>Up</em></a> if the ONU has been provisioned at OMCI level in such a
way that this interface is able to pass traffic.</p>

<p>This parameter is based on <em>ifOperStatus</em> from [<a href="#R.RFC2863">RFC2863</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Name">Name</span></td>
<td>string(:64)</td>
<td>R</td>
<td>The textual name of the interface entry as assigned by the CPE.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.LastChange">LastChange</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The accumulated time in <em>seconds</em> since the interface entered its
current operational state.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.LowerLayers">LowerLayers</span></td>
<td>string[](:1024)</td>
<td>R</td>
<td><p>Comma-separated list (maximum number of characters 1024) of strings. Each list item MUST be the Path Name of an interface object that is stacked immediately
below this interface object, or an empty string. See [<a href="#R.TR-181i2">Section 4.2.1/TR-181i2</a>].</p>

<p>Note: it is expected that <em>LowerLayers</em> will not be used: if <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI."><em>EthernetUNI</em></a>
models a physical UNI, it represents a layer 1 interface; if
<a href="#D.Device:2.Device.XPON.ONU.EthernetUNI."><em>EthernetUNI</em></a> models a virtual UNI, it virtualizes a layer 1 interface.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.ANIs">ANIs</span></td>
<td>string[](:1024)</td>
<td>R</td>
<td><p>Comma-separated list (maximum number of characters 1024) of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.XPON.ONU.ANI."><em>ANI.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. References all associated ANI interfaces.</p>

<p>An ONU is potentially capable of forwarding frames between a UNI and
its associated ANI interfaces. This parameter defines such a
relationship. However, the list does not mean that the forwarding is
actually happening, or the forwarding policies have been provisioned,
between the UNI and the associated ANI interfaces. For an ONU with a
single TC layer device, the parameter value can be either empty for
simplicity, or can be the path name of the associated ANI. For an ONU
with multiple TC layer devices, this parameter value may have one or
more path names.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.InterdomainID">InterdomainID</span></td>
<td>string(:256)</td>
<td>R</td>
<td><p>String to identify the associated service in the ONU management
domain to the TR-181 management domain. If the ONU is managed via
OMCI, it is recommended to format this string as
&ldquo;(service_type,MEID)&rdquo;, with service_type being an enumeration of
<em>VEIP</em> or <em>PPTPEthernetUNI</em>, and MEID the value of the attribute
&ldquo;Managed entity ID&rdquo; of the ME instance managing the service
associated with this EthernetUNI.</p>

<p>Examples:</p>

<ul>
<li>(VEIP,1025)</li>
<li>(PPTPEthernetUNI,257)</li></ul>

<p>An OSS (Operations Support System) having access to both the TR-181
and the OMCI domain can then find out which EthernetUNI instance
represents a certain VEIP or PPTPEthernetUNI ME instance in the OMCI
domain.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.InterdomainName">InterdomainName</span></td>
<td>string(:25)</td>
<td>R</td>
<td>String that provides an additional way to identify the associated
service to the TR-181 management domain. If the ONU is managed via
OMCI and if the service associated with this EthernetUNI is a VEIP,
then the value of this parameter is the value of the attribute
&ldquo;Interdomain name&rdquo; of the corresponding VEIP ME instance.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.">Device.XPON.ONU.{i}.EthernetUNI.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Throughput statistics for this interface.</p>

<p>The CPE MUST reset the interface’s Stats parameters (unless otherwise
stated in individual object or parameter descriptions) either when the
interface becomes operationally down due to a previous administrative
down (i.e. the interface’s <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Status"><em>Status</em></a> parameter transitions to
a down state after the interface is disabled) or when the interface
becomes administratively up (i.e. the interface’s <a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Enable"><em>Enable</em></a>
parameter transitions from <em>false</em> to <em>true</em>). Administrative and
operational interface status is discussed in [<a href="#R.TR-181i2">Section
4.2.2/TR-181i2</a>].</p>

<p>Transmit direction has PON as destination. Receive direction has PON as
source.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.BytesSent">BytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes transmitted out of the interface, including
framing characters.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.BytesReceived">BytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes received on the interface, including
framing characters.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames transmitted out of the interface.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames received on the interface.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.ErrorsSent">ErrorsSent</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of outbound Ethernet frames that could not be
transmitted because of errors.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.ErrorsReceived">ErrorsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of inbound Ethernet frames that contained errors
preventing them from being delivered to the TR-181 domain.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.UnicastPacketsSent">UnicastPacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames requested for transmission which
were not addressed to a multicast or broadcast address at this layer,
including those that were discarded or not sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.UnicastPacketsReceived">UnicastPacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames, delivered by this interface to
the TR-181 domain, which were not addressed to a multicast or
broadcast address at this layer.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.DiscardPacketsSent">DiscardPacketsSent</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of outbound Ethernet frames which were chosen to be
discarded even though no errors had been detected to prevent their
being transmitted. One possible reason for discarding such a packet
could be to free up buffer space.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.DiscardPacketsReceived">DiscardPacketsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of inbound Ethernet frames which were chosen to be
discarded even though no errors had been detected to prevent their
being delivered. One possible reason for discarding such a packet
could be to free up buffer space.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.MulticastPacketsSent">MulticastPacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames requested for transmission and
which were addressed to a multicast address at this layer, including
those that were discarded or not sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.MulticastPacketsReceived">MulticastPacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of received Ethernet frames, delivered by this
interface to the TR-181 domain, which were addressed to a multicast
address at this layer.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.BroadcastPacketsSent">BroadcastPacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames that the TR-181 domain requested
for transmission and which were addressed to a broadcast address at
this layer, including those that were discarded or not sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.BroadcastPacketsReceived">BroadcastPacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of received Ethernet frames, delivered by this
interface to the TR-181 domain, which were addressed to a broadcast
address at this layer.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.UnknownProtoPacketsReceived">UnknownProtoPacketsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of Ethernet frames received via the interface which
were discarded because of an unknown or unsupported protocol.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.">Device.XPON.ONU.{i}.ANI.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>Access Node Interface (ANI) table. An ANI models the xPON MAC/PHY as
defined in the ITU-T PON standards.</p>

<p>This object is not an interface object as described in
[<a href="#R.TR-181i2">Section 4.2/TR-181i2</a>], but it has many of the same core
parameters as an interface object, and they follow largely the same
conventions. The most important deviations are:</p>

<ul>
<li>This object does not have a LowerLayers parameter.</li>
<li>The value LowerLayerDown is not a valid value for its Status
parameter.</li></ul>

<p>Because it’s not an interface object, it does not occur in the
<a href="#D.Device:2.Device.InterfaceStack."><em>InterfaceStack</em></a> table.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.XPON.ONU.ANI.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.XPON.ONU.ANI.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td><p>Enables or disables the interface.</p>

<p>If disabled, the device should force the ONU state of this ANI to O1
(Initial state).</p>

<p>This parameter is based on <em>ifAdminStatus</em> from [<a href="#R.RFC2863">RFC2863</a>].</p>

<p>Note: forcing the state to O1 implies the device disables the TX
laser of the associated transceiver(s). It’s not required to disable
the RX part of the transceivers as well.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The current operational state of the interface. Although this object
is not an interface object, it follows largely the conventions of
[<a href="#R.TR-181i2">Section 4.2.2/TR-181i2</a>]. The most important deviation is
that LowerLayerDown is not a valid value. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Status.Up"><em>Up</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Status.Down"><em>Down</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Status.Unknown"><em>Unknown</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Status.Dormant"><em>Dormant</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Status.NotPresent"><em>NotPresent</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Status.Error"><em>Error</em></span> (OPTIONAL)</li></ul>

<p>When <a href="#D.Device:2.Device.XPON.ONU.ANI.Enable"><em>Enable</em></a> is <em>false</em> then <em>Status</em> SHOULD normally be
<a href="#D.Device:2.Device.XPON.ONU.ANI.Status.Down"><em>Down</em></a> (or <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.NotPresent"><em>NotPresent</em></a> or <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.Error"><em>Error</em></a> if there is a
fault condition on the interface).</p>

<p>When <a href="#D.Device:2.Device.XPON.ONU.ANI.Enable"><em>Enable</em></a> becomes <em>true</em> then <em>Status</em> SHOULD change
to <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.Up"><em>Up</em></a> if and only if the interface is able to transmit and
receive network traffic; more specifically, <em>Status</em> should change
to <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.Up"><em>Up</em></a> if <a href="#D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState"><em>TC.ONUActivation.ONUState</em></a> becomes O5; it
SHOULD change to <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.Dormant"><em>Dormant</em></a> if and only if the interface is
operable but is waiting for external actions before it can transmit
and receive network traffic (and subsequently change to <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.Up"><em>Up</em></a>
if still operable when the expected actions have completed); it
SHOULD remain in the <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.Error"><em>Error</em></a> state if there is an error or
other fault condition detected on the interface; it SHOULD remain in
the <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.NotPresent"><em>NotPresent</em></a> state if the interface has missing (typically
hardware) components; it SHOULD change to <a href="#D.Device:2.Device.XPON.ONU.ANI.Status.Unknown"><em>Unknown</em></a> if the
state of the interface can not be determined for some reason.</p>

<p>This parameter is based on <em>ifOperStatus</em> from [<a href="#R.RFC2863">RFC2863</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Name">Name</span></td>
<td>string(:64)</td>
<td>R</td>
<td>The textual name of the ANI entry as assigned by the CPE.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.LastChange">LastChange</span></td>
<td>unsignedInt</td>
<td>R</td>
<td><p>The accumulated time in <em>seconds</em> since the interface entered its
current operational state.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.PONMode">PONMode</span></td>
<td>string</td>
<td>R</td>
<td><p>PON mode, defines the detected or configured PON mode of the ANI. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.PONMode.Unknown"><em>Unknown</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.PONMode.G-PON"><em>G-PON</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.PONMode.XG-PON"><em>XG-PON</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.PONMode.NG-PON2"><em>NG-PON2</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.PONMode.XGS-PON"><em>XGS-PON</em></span></li></ul>

<p><a href="#D.Device:2.Device.XPON.ONU.ANI.Transceiver."><em>Transceiver</em></a> has a parameter of the same name. For proper
operation, the PON mode of the transceiver(s) corresponding to this
ANI must be equal to the PON mode of this ANI. But a user might e.g.
accidentally insert a G-PON SFP while the PON mode of the ANI is
XGS-PON.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TransceiverNumberOfEntries">TransceiverNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.XPON.ONU.ANI.Transceiver."><em>Transceiver</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.">Device.XPON.ONU.{i}.ANI.{i}.Stats.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td><p>Throughput statistics for this interface.</p>

<p>The CPE MUST reset the interface’s Stats parameters (unless otherwise
stated in individual object or parameter descriptions) either when the
interface becomes operationally down due to a previous administrative
down (i.e. the interface’s <a href="#D.Device:2.Device.XPON.ONU.ANI.Status"><em>Status</em></a> parameter transitions to
a down state after the interface is disabled) or when the interface
becomes administratively up (i.e. the interface’s <a href="#D.Device:2.Device.XPON.ONU.ANI.Enable"><em>Enable</em></a>
parameter transitions from <em>false</em> to <em>true</em>). Administrative and
operational interface status is discussed in [<a href="#R.TR-181i2">Section
4.2.2/TR-181i2</a>].</p>

<p>Transmit direction has PON as destination. Receive direction has PON as
source.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.BytesSent">BytesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes transmitted out of the interface, including
framing characters.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.BytesReceived">BytesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of bytes received on the interface, including
framing characters.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.PacketsSent">PacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames transmitted out of the interface.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.PacketsReceived">PacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames received on the interface.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.ErrorsSent">ErrorsSent</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of outbound Ethernet frames that could not be
transmitted because of errors.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.ErrorsReceived">ErrorsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of inbound Ethernet frames that contained errors
preventing them from being forwarded to the UNI(s).</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.UnicastPacketsSent">UnicastPacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames requested for transmission which
were not addressed to a multicast or broadcast address at this layer,
including those that were discarded or not sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.UnicastPacketsReceived">UnicastPacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames, forwarded by this interface to
the UNI(s), which were not addressed to a multicast or broadcast
address at this layer.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.DiscardPacketsSent">DiscardPacketsSent</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of outbound Ethernet frames which were chosen to be
discarded even though no errors had been detected to prevent their
being transmitted. One possible reason for discarding such a packet
could be to free up buffer space.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.DiscardPacketsReceived">DiscardPacketsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of inbound Ethernet frames which were chosen to be
discarded even though no errors had been detected to prevent their
being delivered. One possible reason for discarding such a packet
could be to free up buffer space.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.MulticastPacketsSent">MulticastPacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames requested for transmission and
which were addressed to a multicast address at this layer, including
those that were discarded or not sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.MulticastPacketsReceived">MulticastPacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of received Ethernet frames, forwarded by this
interface to the UNI(s), which were addressed to a multicast address
at this layer.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.BroadcastPacketsSent">BroadcastPacketsSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of Ethernet frames requested for transmission on the
PON and which were addressed to a broadcast address at this layer,
including those that were discarded or not sent.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.BroadcastPacketsReceived">BroadcastPacketsReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The total number of received Ethernet frames, forwarded by this
interface to the UNI(s), which were addressed to a broadcast address
at this layer.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Stats.UnknownProtoPacketsReceived">UnknownProtoPacketsReceived</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] The total number of Ethernet frames received via the interface which
were discarded because of an unknown or unsupported protocol.</p>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.">Device.XPON.ONU.{i}.ANI.{i}.TC.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object represents an ITU-T PON TC layer device.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.">Device.XPON.ONU.{i}.ANI.{i}.TC.ONUActivation.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object shows info related to the activation of this ANI by an OLT.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState">ONUState</span></td>
<td>string</td>
<td>R</td>
<td><p>ONU activation state. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O1"><em>O1</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O2"><em>O2</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O3"><em>O3</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O2-3"><em>O2-3</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O4"><em>O4</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O5"><em>O5</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O6"><em>O6</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O7"><em>O7</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O8"><em>O8</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUState.O9"><em>O9</em></span></li></ul>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Section C.12/G.9807.1</a>]</li>
<li>[<a href="#R.G.984.3">Section 10/G.984.3</a>]</li>
<li>[<a href="#R.G.987.3">Section 12/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Section 12/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.VendorID">VendorID</span></td>
<td>string(:4)</td>
<td>R</td>
<td>Identifies the vendor of the ONU. See [<a href="#R.G.988">Section 9.1.1/G.988</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.SerialNumber">SerialNumber</span></td>
<td>string(:12)</td>
<td>R</td>
<td>Represents the combination of the Vendor-ID and the Vendor-specific
serial number (VSSN). The parameter shows the serial number in a
human readable format. Example: if the vendor ID is ABCD and the VSSN
encodes the number 1234568, the value of this parameter is
ABCD12345678. See [<a href="#R.G.988">Section 9.1.1/G.988</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.ONUID">ONUID</span></td>
<td>unsignedInt(0:1022)</td>
<td>R</td>
<td><p>Identifier that the OLT assigns to this ANI during the activation.
See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Section C.6.1.5.6/G.9807.1</a>]</li>
<li>[<a href="#R.G.984.3">Section 5.5.2/G.984.3</a>]</li>
<li>[<a href="#R.G.987.3">Section 6.4.2/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Section 6.1.5.6/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.">Device.XPON.ONU.{i}.ANI.{i}.TC.PM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Performance monitoring (PM) counters.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.">Device.XPON.ONU.{i}.ANI.{i}.TC.PM.PHY.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>PHY PM.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.CorrectedFECBytes">CorrectedFECBytes</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] The number of bytes that were corrected by the FEC function.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.CorrectedFECCodewords">CorrectedFECCodewords</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Count of FEC codewords that contained errors but were corrected by
the FEC function.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.UncorrectableFECCodewords">UncorrectableFECCodewords</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Count of FEC codewords that contained errors and could not be
corrected by the FEC function.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.TotalFECCodewords">TotalFECCodewords</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Count of total received FEC codewords.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.PSBdHECErrorCount">PSBdHECErrorCount</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] HEC error in any of the fields of PSBd.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.HeaderHECErrorCount">HeaderHECErrorCount</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] HEC errors received in the DS XGTC or FS header.</p>

<p>This counter is called:</p>

<ul>
<li>&ldquo;FS HEC error count&rdquo; in [<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>] and
[<a href="#R.G.989.3">Table 14-1/G.989.3</a>].</li>
<li>&ldquo;XGTC HEC error count&rdquo; in [<a href="#R.G.987.3">Table 14-1/G.987.3</a>].</li></ul>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.UnknownProfile">UnknownProfile</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] ONU could not transmit because the specified burst profile was not
known.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.GEM.">Device.XPON.ONU.{i}.ANI.{i}.TC.PM.GEM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>(X)GEM PM.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.GEM.FramesSent">FramesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Total number of (X)GEM frames transmitted.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.GEM.FramesReceived">FramesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Total number of (X)GEM frames received.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.GEM.FrameHeaderHECErrors">FrameHeaderHECErrors</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] XGEM frame header HEC errors.</p>

<p>Number of events involving loss of XGEM channel delineation.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.GEM.KeyErrors">KeyErrors</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] XGEM key errors.</p>

<p>XGEM frames discarded because of unknown or invalid encryption key.
Examples include: no unicast or broadcast key established for
specified key index, key index indicating encrypted XGEM frame on a
XGEM port that is not provisioned for encryption, key index
indicating upstream encryption on a XGEM port that is provisioned for
downstream encryption only, or invalid key index (11). This count is
included in <a href="#D.Device:2.Device.XPON.ONU.ANI.TC.PM.GEM.FramesReceived"><em>FramesReceived</em></a>.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PLOAM.">Device.XPON.ONU.{i}.ANI.{i}.TC.PM.PLOAM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>PLOAM PM.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PLOAM.MICErrors">MICErrors</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] PLOAM MIC errors.</p>

<p>Counter of received PLOAM messages with MIC errors.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PLOAM.DownstreamMessageCount">DownstreamMessageCount</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Downstream PLOAM message count.</p>

<p>Count of PLOAM messages sent by OLT, received by ONU, either
broadcast or directed to the specific ONU-ID.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PLOAM.RangingTime">RangingTime</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Count of Ranging_Time PLOAM messages sent by OLT.</p>

<p>It provides a base for transmission time drift estimation.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.PLOAM.UpstreamMessageCount">UpstreamMessageCount</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] Upstream PLOAM message count.</p>

<p>Count of messages (other than Acknowledgement) sent by ONU to OLT.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.OMCI.">Device.XPON.ONU.{i}.ANI.{i}.TC.PM.OMCI.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>OMCI PM.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.OMCI.BaselineMessagesReceived">BaselineMessagesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] OMCI baseline message count.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.OMCI.ExtendedMessagesReceived">ExtendedMessagesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] OMCI extended message count.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PM.OMCI.MICErrors">MICErrors</span></td>
<td><span title="StatsCounter32">unsignedInt</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter32">StatsCounter32</a>] Count of received OMCI messages with MIC errors.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul>

<p>Active Notification requests for this parameter MAY be denied.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.">Device.XPON.ONU.{i}.ANI.{i}.TC.GEM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Info about the GEM ports of this ANI.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.PortNumberOfEntries">PortNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port."><em>Port</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.">Device.XPON.ONU.{i}.ANI.{i}.TC.GEM.Port.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>GEM port table. Each entry gives info about a(n) (X)GEM port.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PortID"><em>PortID</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PortID">PortID</span></td>
<td>unsignedInt(0:65534)</td>
<td>R</td>
<td><p>Identifies a GEM port.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Section C.6.1.5.8/G.9807.1</a>]</li>
<li>[<a href="#R.G.984.3">Section 5.5.5/G.984.3</a>]</li>
<li>[<a href="#R.G.987.3">Section 6.4.4/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Section 6.1.5.8/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.Direction">Direction</span></td>
<td>string</td>
<td>R</td>
<td><p>Type of connection this GEM port is used for. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.Direction.UNI-to-ANI"><em>UNI-to-ANI</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.Direction.ANI-to-UNI"><em>ANI-to-UNI</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.Direction.bidirectional"><em>bidirectional</em></span></li></ul>

<p>See: [<a href="#R.G.988">Section 9.2.3/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PortType">PortType</span></td>
<td>string</td>
<td>R</td>
<td><p>GEM port type.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PortType.unicast"><em>unicast</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PortType.multicast"><em>multicast</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PortType.broadcast"><em>broadcast</em></span></li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PM.">Device.XPON.ONU.{i}.ANI.{i}.TC.GEM.Port.{i}.PM.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Performance monitoring (PM) counters for this (X)GEM port.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PM.FramesSent">FramesSent</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] (X)GEM frames transmitted by this (X)GEM port.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PM.FramesReceived">FramesReceived</span></td>
<td><span title="StatsCounter64">unsignedLong</span></td>
<td>R</td>
<td><p>[<a href="#T.StatsCounter64">StatsCounter64</a>] (X)GEM frames received by this (X)GEM port.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Table C.14.1/G.9807.1</a>]</li>
<li>[<a href="#R.G.987.3">Table 14-1/G.987.3</a>]</li>
<li>[<a href="#R.G.989.3">Table 14-1/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PerformanceThresholds.">Device.XPON.ONU.{i}.ANI.{i}.TC.PerformanceThresholds.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Performance thresholds.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PerformanceThresholds.SignalFail">SignalFail</span></td>
<td>unsignedInt(3:8)</td>
<td>R</td>
<td><p>Signal fail (SF) threshold.</p>

<p>This parameter specifies the downstream bit error rate (BER)
threshold to detect the SF alarm. When this value is y, the BER
threshold is 10^–y.</p>

<p>This parameter is based on <em>Signal fail (SF) threshold</em> from
[<a href="#R.G.988">Section 9.2.1/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.PerformanceThresholds.SignalDegrade">SignalDegrade</span></td>
<td>unsignedInt(4:10)</td>
<td>R</td>
<td><p>Signal degrade (SD) threshold.</p>

<p>This parameter specifies the downstream BER threshold to detect the
SD alarm. When this value is x, the BER threshold for SD is 10^–x .
The SD threshold must be lower than the SF threshold; i.e., x &gt; y.</p>

<p>This parameter is based on <em>Signal degrade (SD) threshold</em> from
[<a href="#R.G.988">Section 9.2.1/G.988</a>].</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.">Device.XPON.ONU.{i}.ANI.{i}.TC.Alarms.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>Alarms at TC level for this ANI.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.LOS">LOS</span></td>
<td>boolean</td>
<td>R</td>
<td>Loss of signal. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.LOF">LOF</span></td>
<td>boolean</td>
<td>R</td>
<td>Loss of frame. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.SF">SF</span></td>
<td>boolean</td>
<td>R</td>
<td>Signal failed. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.SD">SD</span></td>
<td>boolean</td>
<td>R</td>
<td>Signal degraded. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.LCDG">LCDG</span></td>
<td>boolean</td>
<td>R</td>
<td>Loss of GEM channel delineation. See [<a href="#R.G.984.3">Section
11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.TF">TF</span></td>
<td>boolean</td>
<td>R</td>
<td>Transmitter failure. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.SUF">SUF</span></td>
<td>boolean</td>
<td>R</td>
<td>Start-up failure. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.MEM">MEM</span></td>
<td>boolean</td>
<td>R</td>
<td>Message error message. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.DACT">DACT</span></td>
<td>boolean</td>
<td>R</td>
<td>Deactivate ONU-ID. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.DIS">DIS</span></td>
<td>boolean</td>
<td>R</td>
<td>Disabled ONU. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.MIS">MIS</span></td>
<td>boolean</td>
<td>R</td>
<td>Link mismatching. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.PEE">PEE</span></td>
<td>boolean</td>
<td>R</td>
<td>When the ONU receives a PEE message. See [<a href="#R.G.984.3">Section
11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.RDI">RDI</span></td>
<td>boolean</td>
<td>R</td>
<td>Remote defect indication. See [<a href="#R.G.984.3">Section 11.1.2/G.984.3</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.LODS">LODS</span></td>
<td>boolean</td>
<td>R</td>
<td>Loss of downstream syncronization. See [<a href="#R.G.9807.1">G.9807.1</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.ROGUE">ROGUE</span></td>
<td>boolean</td>
<td>R</td>
<td><p>The ANI behaves rogue: it is not transmitting in a manner consistent
with parameters specified in the ITU-T PON standards. Hence it can
threaten all upstream transmissions on the PON, causing interference
and disrupting communications of other ONUs on the PON. An example of
rogue behavior is transmitting in the wrong timeslot.</p>

<p>See:</p>

<ul>
<li>[<a href="#R.G.9807.1">Section C.19/G.9807.1</a>]</li>
<li>[<a href="#R.G.989.3">Section 19/G.989.3</a>]</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.">Device.XPON.ONU.{i}.ANI.{i}.Transceiver.{i}.</span></td>
<td><span title="object(0:2)">object(0:2)</span></td>
<td>R</td>
<td><p>Transceiver table. Each entry models a PON transceiver.</p>

<p>This table MUST contain at least 0 and at most 2 entries.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.XPON.ONU.ANI.Transceiver.ID"><em>ID</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.ID">ID</span></td>
<td>unsignedInt(0:1)</td>
<td>R</td>
<td>The ID as assigned by the CPE to this Transceiver entry.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Identifier">Identifier</span></td>
<td>unsignedInt(0:255)</td>
<td>R</td>
<td>Transceiver type. Allowed values are given by [<a href="#R.SFF-8024">Table
4-1/SFF-8024</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.VendorName">VendorName</span></td>
<td>string(:256)</td>
<td>R</td>
<td>Vendor name. See [<a href="#R.SFF-8472">Table 4-1/SFF-8472</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.VendorPartNumber">VendorPartNumber</span></td>
<td>string(:256)</td>
<td>R</td>
<td>Vendor part number. See &ldquo;Vendor PN&rdquo; in [<a href="#R.SFF-8472">Table 4-1/SFF-8472</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.VendorRevision">VendorRevision</span></td>
<td>string(:256)</td>
<td>R</td>
<td>Vendor revision. See &ldquo;Vendor rev&rdquo; in [<a href="#R.SFF-8472">Table 4-1/SFF-8472</a>].</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.PONMode">PONMode</span></td>
<td>string</td>
<td>R</td>
<td><p>PON mode, reports the PON mode of the transceiver.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.PONMode.Unknown"><em>Unknown</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.PONMode.G-PON"><em>G-PON</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.PONMode.XG-PON"><em>XG-PON</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.PONMode.NG-PON2"><em>NG-PON2</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.PONMode.XGS-PON"><em>XGS-PON</em></span></li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Connector">Connector</span></td>
<td>string</td>
<td>R</td>
<td><p>Connector type.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Connector.Unknown"><em>Unknown</em></span></li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Connector.LC"><em>LC</em></span> (Lucent Connector, Little Connector, or Local Connector)</li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Connector.SC"><em>SC</em></span> (Subscriber connector, square connector or standard connector)</li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Connector.ST"><em>ST</em></span> (Straight tip connector)</li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Connector.FC"><em>FC</em></span> (Ferrule Connector or Fiber Channel)</li>
<li><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Connector.MT-RJ"><em>MT-RJ</em></span> (Mechanical Transfer Registered Jack)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.NominalBitRateDownstream">NominalBitRateDownstream</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Nominal data rate downstream in <em>kbps</em>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.NominalBitRateUpstream">NominalBitRateUpstream</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Nominal data rate upstream in <em>kbps</em>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.RxPower">RxPower</span></td>
<td>int</td>
<td>R</td>
<td>Measured RX power in <em>0.1 dBm</em>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.TxPower">TxPower</span></td>
<td>int</td>
<td>R</td>
<td>Measured TX power in <em>0.1 dBm</em>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Voltage">Voltage</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Measured supply voltage in <em>mV</em>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Bias">Bias</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Measured bias current in <em>µA</em>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.XPON.ONU.ANI.Transceiver.Temperature">Temperature</span></td>
<td>int(-274:)</td>
<td>R</td>
<td><p>Measured temperature in <em>degrees celsius</em>.</p>

<p>A value of -274 (which is below absolute zero) indicates a good
reading has not been obtained.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SSH.">Device.SSH.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains global parameters relating to the Secure Shell
clients and or servers implementations that are active in the CPE.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.ServerNumberOfEntries">ServerNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.SSH.Server."><em>Server</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.AuthorizedKeyNumberOfEntries">AuthorizedKeyNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.SSH.AuthorizedKey."><em>AuthorizedKey</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the SSH service.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of the SSH service. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SSH.Status.Disabled"><em>Disabled</em></span> (Indicates that the SSH service is disabled)</li>
<li><span id="D.Device:2.Device.SSH.Status.Enabled"><em>Enabled</em></span> (Indicates that the SSH service is enabled)</li>
<li><span id="D.Device:2.Device.SSH.Status.Error"><em>Error</em></span> (Indicates that the SSH service has encountered an error, OPTIONAL)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SSH.Server.">Device.SSH.Server.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object contains parameters relating to a SSH server instance.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SSH.Server.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.SSH.Server.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Enable">Enable</span></td>
<td>boolean</td>
<td>W</td>
<td>Enables or disables the SSH server instance. When <em>Enable</em> is set to
<em>false</em>, any active sessions must be forcibly terminated and the
<a href="#D.Device:2.Device.SSH.Server.ActivationDate"><em>ActivationDate</em></a> is reset.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Status">Status</span></td>
<td>string</td>
<td>R</td>
<td><p>The status of the SSH server instance. Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.SSH.Server.Status.Disabled"><em>Disabled</em></span> (Indicates that the SSH server instance is disabled)</li>
<li><span id="D.Device:2.Device.SSH.Server.Status.Enabled"><em>Enabled</em></span> (Indicates that the SSH server instance is enabled)</li>
<li><span id="D.Device:2.Device.SSH.Server.Status.Error"><em>Error</em></span> (Indicates that the SSH server instance has encountered an error, OPTIONAL)</li>
<li><span id="D.Device:2.Device.SSH.Server.Status.Error_Misconfigured"><em>Error_Misconfigured</em></span> (Indicates that a necessary configuration value is undefined or invalid)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Interface">Interface</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.IP.Interface."><em>IP.Interface.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The IP Interface associated with the <a href="#D.Device:2.Device.SSH.Server."><em>Server</em></a> entry.</p>

<p>If an empty string is specified, the CPE MUST use its bridging or routing
policy to determine the appropriate interface.</p></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Port">Port</span></td>
<td>unsignedInt(1:65535)</td>
<td>W</td>
<td>Specify the port used by the SSH server.</td>
<td>22</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.IdleTimeout">IdleTimeout</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>When the session is inactive, it is automatically terminated after
<em>IdleTimeout</em> amount of <em>seconds</em>. A value of <em>0</em> disables this
feature.</td>
<td>180</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.KeepAlive">KeepAlive</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Every amount of <em>KeepAlive</em> <em>seconds</em> a keep alive message is sent. A
value of <em>0</em> disables this feature.</td>
<td>300</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.AllowRootLogin">AllowRootLogin</span></td>
<td>boolean</td>
<td>W</td>
<td>Permit SSH users to login as root.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.AllowPasswordLogin">AllowPasswordLogin</span></td>
<td>boolean</td>
<td>W</td>
<td>Permit SSH users to login using a password.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.AllowRootPasswordLogin">AllowRootPasswordLogin</span></td>
<td>boolean</td>
<td>W</td>
<td>Permit the root SSH user to login using a password.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.MaxAuthTries">MaxAuthTries</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Maximum authentication tries allowed before disconnect</td>
<td>3</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.AllowAllIPv4">AllowAllIPv4</span></td>
<td>boolean</td>
<td>W</td>
<td>Allow access from any IPv4 address. The source prefixes defined in
<a href="#D.Device:2.Device.SSH.Server.IPv4AllowedSourcePrefix"><em>IPv4AllowedSourcePrefix</em></a> will be ignored.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.IPv4AllowedSourcePrefix">IPv4AllowedSourcePrefix</span></td>
<td>string[](:1024)</td>
<td>W</td>
<td>Comma-separated list (maximum number of characters 1024) of strings. Allow only access from the provided list of IPv4 prefixes.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.AllowAllIPv6">AllowAllIPv6</span></td>
<td>boolean</td>
<td>W</td>
<td>Allow access from any IPv6 address. The source prefixes defined in
<a href="#D.Device:2.Device.SSH.Server.IPv6AllowedSourcePrefix"><em>IPv6AllowedSourcePrefix</em></a> will be ignored.</td>
<td>false</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.IPv6AllowedSourcePrefix">IPv6AllowedSourcePrefix</span></td>
<td>string[](:1024)</td>
<td>W</td>
<td>Comma-separated list (maximum number of characters 1024) of strings. Allow only access from the provided list of IPv6 prefixes.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.ActivationDate">ActivationDate</span></td>
<td>dateTime</td>
<td>R</td>
<td>Activation date indicates when the server instance has been activated
and the <a href="#D.Device:2.Device.SSH.Server.Enable"><em>Enable</em></a> is set to <em>true</em>.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.AutoDisableDuration">AutoDisableDuration</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The SSH server instance will be disabled when the the <em>AutoDisableDuration</em>
elapses, and configuration must be done in <em>minutes</em>. At the end, the
coressponding <a href="#D.Device:2.Device.SSH.Server.Enable"><em>Enable</em></a> parameter of the SSH server instance
is automatically changed to false <em>false</em>. Any active sessions must
be forcibly terminated. 0 means the the SSH server instance is always
active.</td>
<td>0</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.PID">PID</span></td>
<td>unsignedInt</td>
<td>W</td>
<td>Current PID of the SSH server instance.</td>
<td>0</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.SessionNumberOfEntries">SessionNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.SSH.Server.Session."><em>Session</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SSH.Server.Session.">Device.SSH.Server.{i}.Session.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Active SSH session list.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SSH.Server.Session.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.SSH.Server.Session.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Session.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Session.User">User</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Users.User."><em>Users.User.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The user to whom the session belongs to.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Session.IPAddress">IPAddress</span></td>
<td><span title="IPAddress">string(:45)</span></td>
<td>R</td>
<td>[<a href="#T.IPAddress">IPAddress</a>] IP address of the remote SSH client.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.Server.Session.Port">Port</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>Port of the remote SSH client.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.SSH.AuthorizedKey.">Device.SSH.AuthorizedKey.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object contains parameters relating to a SSH server instance.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.SSH.AuthorizedKey.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.SSH.AuthorizedKey.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.AuthorizedKey.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul>

<p>The Agent MUST choose an initial value that doesn’t conflict with any existing entries.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.AuthorizedKey.User">User</span></td>
<td>string(:256)</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Users.User."><em>Users.User.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. The user to whom the authorized key belongs to.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.SSH.AuthorizedKey.Key">Key</span></td>
<td>string</td>
<td>W</td>
<td>Public key used for authentication (OpenSSH format).</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.UnixDomainSockets.">Device.UnixDomainSockets.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains information related to the Unix Domain Sockets
used by USP Agent UDS MTP.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UnixDomainSockets.UnixDomainSocketNumberOfEntries">UnixDomainSocketNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.UnixDomainSockets.UnixDomainSocket."><em>UnixDomainSocket</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.">Device.UnixDomainSockets.UnixDomainSocket.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object contains parameters relating to a UnixDomainSocket
configuration.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.Alias"><em>Alias</em></a>, or with a given value for <a href="#D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.Path"><em>Path</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.Alias">Alias</span></td>
<td><span title="Alias">string(:64)</span></td>
<td>W</td>
<td><p>[<a href="#T.Alias">Alias</a>] A non-volatile handle used to reference this instance. Alias provides a
mechanism for an ACS to label this instance for future reference.</p>

<p>If the CPE supports the Alias-based Addressing feature as defined in
[<a href="#R.TR-069">Section 3.6.1/TR-069</a>] and described in [<a href="#R.TR-069">Appendix II/TR-069</a>],
the following mandatory constraints MUST be enforced:</p>

<ul>
<li>Its value MUST NOT be empty.</li>
<li>Its value MUST start with a letter.</li>
<li>If its value is not assigned by the ACS, it MUST start with a &ldquo;cpe-&rdquo;
prefix.</li>
<li>The CPE MUST NOT change the parameter value.</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.Mode">Mode</span></td>
<td>string</td>
<td>R</td>
<td><p>Describes how the Unix Domain Socket must be used.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.Mode.Listen"><em>Listen</em></span> (UNIX Domain Socket Server)</li>
<li><span id="D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.Mode.Connect"><em>Connect</em></span> (UNIX Domain Socket Client)</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.Path">Path</span></td>
<td>string(:4096)</td>
<td>R</td>
<td><p>File path of the Unix Domain Socket.</p>

<p>Example: /tmp/broker_controller_path</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.USPServices.">Device.USPServices.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains information related to installed USP Services.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPServices.USPServiceNumberOfEntries">USPServiceNumberOfEntries</span></td>
<td>unsignedInt</td>
<td>R</td>
<td>The number of entries in the <a href="#D.Device:2.Device.USPServices.USPService."><em>USPService</em></a> table.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.USPServices.USPService.">Device.USPServices.USPService.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>This object contains parameters relating to a USPService configuration.</p>

<p>At most one entry in this table can exist with a given value for <a href="#D.Device:2.Device.USPServices.USPService.EndpointID"><em>EndpointID</em></a>.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPServices.USPService.EndpointID">EndpointID</span></td>
<td>string</td>
<td>R</td>
<td>The unique USP identifier for this USP Agent.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPServices.USPService.Protocol">Protocol</span></td>
<td>string</td>
<td>W</td>
<td><p>The Message Transport Protocol (MTP) to be used for communications by
a USP Endpoint.</p>

<p>Enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.USPServices.USPService.Protocol.WebSocket"><em>WebSocket</em></span> (See [<a href="#R.RFC6455">RFC6455</a>])</li>
<li><span id="D.Device:2.Device.USPServices.USPService.Protocol.STOMP"><em>STOMP</em></span> (See [<a href="#R.STOMP1.2">STOMP1.2</a>])</li>
<li><span id="D.Device:2.Device.USPServices.USPService.Protocol.MQTT"><em>MQTT</em></span> (See [<a href="#R.MQTT311">MQTT311</a>] and [<a href="#R.MQTT50">MQTT50</a>])</li>
<li><span id="D.Device:2.Device.USPServices.USPService.Protocol.UDS"><em>UDS</em></span> (See [<a href="#R.TR-369">TR-369</a>])</li></ul></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPServices.USPService.DataModelPaths">DataModelPaths</span></td>
<td>string[1:1024]</td>
<td>R</td>
<td>Comma-separated list (1 to 1024 items) of strings. Registered data model paths.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPServices.USPService.DeploymentUnitRef">DeploymentUnitRef</span></td>
<td>string[]</td>
<td>R</td>
<td><p>Comma-separated list of strings. Each list item MUST be the Path Name of the <a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit."><em>SoftwareModules.DeploymentUnit.</em></a> object
instance that this USP Service is part off.. If the referenced object is deleted, the corresponding item MUST be removed from the list.</p>

<p>An empty string means that USP service doesn’t have a corresponding
software module.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPServices.USPService.HasController">HasController</span></td>
<td>boolean</td>
<td>R</td>
<td>The USP service has controller functionality next to the standard USP
Agent functionality.</td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.">Device.PacketCaptureDiagnostics.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The PacketCaptureDiagnostics object. This diagnostic is used to record
packet capture data on a valid (layer 2 or above) interface in libpcap
or pcapng format.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.FileTarget">FileTarget</span></td>
<td><span title="URL">string(:2048)</span></td>
<td>W</td>
<td>The [<a href="#T.URL">URL</a>] specifying the destination file location. <span class="removed">HTTP</span><span class="inserted">The HTTPS transport MUST be supported,</span> and <span class="removed">HTTPS</span><span class="inserted">the</span> <span class="removed">transports</span><span class="inserted">HTTP</span> <span class="removed">MUST</span><span class="inserted">transport MAY</span> be supported. Other transports MAY <span class="inserted">also </span>be supported.</td>
<td>-</td>
<td>2.13</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.PacketCaptureDiagnostics.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>Password to be used by the Agent to authenticate with the file
location. This string is set to an empty string if no authentication is
required.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.13</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.">Device.USPAgent.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains general information about the USP Agent itself. For information related to the Device that hosts the Agent, please reference the <strong>{{object: non-existent <span class="inserted">#.DeviceInfo</span>}}</strong> object.</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.SupportedProtocols">SupportedProtocols</span></td>
<td>string[1:]</td>
<td>R</td>
<td><p>Comma-separated list (at least 1 item) of strings. USP Message Transfer Protocols supported by this USP Agent. The USP
Agent MUST support at least one Protocol.</p>

<p>Each list item is an enumeration of:</p>

<ul>
<li><span id="D.Device:2.Device.USPAgent.SupportedProtocols.CoAP"><em>CoAP</em></span> (See [<a href="#R.RFC7252">RFC7252</a>].This enumeration was DEPRECATED in 2.15 because the CoAP MTP was deprecated in USP 1.2)</li>
<li><span id="D.Device:2.Device.USPAgent.SupportedProtocols.WebSocket"><em>WebSocket</em></span> (See [<a href="#R.RFC6455">RFC6455</a>])</li>
<li><span id="D.Device:2.Device.USPAgent.SupportedProtocols.STOMP"><em>STOMP</em></span> (See [<a href="#R.STOMP1.2">STOMP1.2</a>])</li>
<li><span id="D.Device:2.Device.USPAgent.SupportedProtocols.MQTT"><em>MQTT</em></span> (See [<a href="#R.MQTT311">MQTT311</a>] and [<a href="#R.MQTT50">MQTT50</a>])</li>
<li><span id="D.Device:2.Device.USPAgent.SupportedProtocols.UDS"><em>UDS</em></span> (See [<a href="#R.TR-369">TR-369</a>], added in 2.16)</li></ul>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added string <em>UDS</em> enumeration</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.AddCertificate">AddCertificate</span></td>
<td>string(:65535)</td>
<td>W</td>
<td><p>Provides a mechanism to allow an ACS to add a new certificate to <strong>{{object: non-existent <span class="inserted">Certificate.{i}</span>}}</strong>. This does not automatically produce a trust relationship with the host identified by the Certificate. To produce a trust relationship, an entry is required to exist in <strong>{{param: non-existent <span class="inserted">Controller.{i}.Credential</span>}}</strong> or <strong>{{param: non-existent <span class="inserted">ControllerTrust.Credential.{i}.Credential</span>}}</strong> that references the new <strong>{{object: non-existent <span class="inserted">Certificate.{i}</span>}}</strong> entry. The Agent will use the Serial Number and Issuer fields from the content provided in this parameter to populate the <strong>{{param: non-existent <span class="inserted">Certificate.{i}.SerialNumber</span> and <a href="#D.Device:2.Device.USPAgent.Certificate.Issuer"><em>Certificate.{i}.Issuer</em></a>}}</strong> parameters. If <strong>{{object: non-existent <span class="inserted">Certificate</span>}}</strong> already has an instance with the same <strong>{{param: non-existent <span class="inserted">Certificate.{i}.SerialNumber</span> and <a href="#D.Device:2.Device.USPAgent.Certificate.Issuer"><em>Certificate.{i}.Issuer</em></a>}}</strong> parameters, this command will fail. To replace an instance with the same <strong>{{param: non-existent <span class="inserted">Certificate.{i}.SerialNumber</span> and <a href="#D.Device:2.Device.USPAgent.Certificate.Issuer"><em>Certificate.{i}.Issuer</em></a>}}</strong>, the existing instance must first be deleted.</p>

<p>The value of this parameter is the X.509 certificate in Privacy-enhanced Electronic Mail (PEM) [<a href="#R.RFC7468">RFC7468</a>] format.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.MTP.">Device.USPAgent.MTP.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Each instance of this table represents a MTP used by the local Agent.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.USPAgent.MTP.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.USPAgent.MTP.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.USPAgent.MTP.UDS."><em>UDS.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.MTP.Protocol">Protocol</span></td>
<td>string</td>
<td>W</td>
<td><p>The value MUST be a member of the list reported by the <a href="#D.Device:2.Device.USPAgent.SupportedProtocols"><em>SupportedProtocols</em></a> parameter. The Message Transport Protocol (MTP) to be used for communications by
a USP Endpoint.</p>

<p>This parameter discriminates between the <a href="#D.Device:2.Device.USPAgent.MTP.CoAP."><em>CoAP</em></a>, <a href="#D.Device:2.Device.USPAgent.MTP.WebSocket."><em>WebSocket</em></a>, <a href="#D.Device:2.Device.USPAgent.MTP.UDS."><em>UDS</em></a> union objects.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax <em>WebSocket</em> default</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-object">
<td><span id="D.Device:2.Device.USPAgent.MTP.CoAP.">Device.USPAgent.MTP.{i}.CoAP.</span></td>
<td><span title="object(0:1)">object(0:1)</span></td>
<td>R</td>
<td><div class="hide">If the USP Endpoint uses the CoAP Message Transport Protocol (MTP),
then this object contains CoAP specific configuration parameters.</div>

<div class="chevron">This object was DEPRECATED in 2.15<span class="hide"> because the CoAP MTP was deprecated in USP 1.2</span>.<span class="click"></span></div>

<div class="hide"><div class="hide">This object MUST be present if, and only if, <a href="#D.Device:2.Device.USPAgent.MTP.Protocol"><em>Protocol</em></a> is <a href="#D.Device:2.Device.USPAgent.SupportedProtocols.CoAP"><em>CoAP</em></a>.</div></div>

<div class="hide"><div class="hide">This object is a member of a union, i.e., it is a member of a group of objects of which only one can exist at a given time.</div></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="obsoleted-parameter showable2 hide show2">
<td><span id="D.Device:2.Device.USPAgent.MTP.CoAP.IsEncrypted">IsEncrypted</span></td>
<td>boolean</td>
<td>R</td>
<td><div class="hide">This parameter represents whether or not communications that utilize this <a href="#D.Device:2.Device.USPAgent.MTP.CoAP."><em>CoAP</em></a> object instance are encrypted.</div>

<div class="hide">This parameter was DEPRECATED in 2.14 because the <a href="#D.Device:2.Device.USPAgent.MTP.CoAP.EnableEncryption"><em>EnableEncryption</em></a> parameter will dictate whether all connections to this CoAP server instance are or are not encrypted.</div>

<div class="inserted"><div class="chevron">This parameter was OBSOLETED in 2.16.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div></div></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.MTP.WebSocket.">Device.USPAgent.MTP.{i}.WebSocket.</span></td>
<td><span title="object(0:1)">object(0:1)</span></td>
<td>R</td>
<td><p>If the USP Endpoint uses the WebSocket Message Transport Protocol (MTP)
as a WebSocket server, then this object contains WebSocket specific
configuration parameters.</p>

<p>This object MUST be present if, and only if, <a href="#D.Device:2.Device.USPAgent.MTP.Protocol"><em>Protocol</em></a> is <a href="#D.Device:2.Device.USPAgent.SupportedProtocols.WebSocket"><em>WebSocket</em></a>.</p>

<p>This object is a member of a union, i.e., it is a member of a group of objects of which only one can exist at a given time.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.MTP.WebSocket.KeepAliveInterval">KeepAliveInterval</span></td>
<td>unsignedInt(1:)</td>
<td>W</td>
<td>The duration in <em>seconds</em> between when WebSocket ping control frames
are transmitted by the Agent’s WebSocket server to the Controller’s
WebSocket client.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>unsignedInt(1:)</em> syntax <em>60</em> default</li></ul></div></td>
<td>60</td>
<td>2.15</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.USPAgent.MTP.UDS.">Device.USPAgent.MTP.{i}.UDS.</span></td>
<td><span title="object(0:1)">object(0:1)</span></td>
<td>R</td>
<td><p>If the USP Endpoint uses the Unix Domain Socket (UDS) Message Transfer
Protocol (MTP), then this object contains UDS Client specific
configuration parameters related to how the Agent communicates with the
UDS Server.</p>

<p>This object MUST be present if, and only if, <a href="#D.Device:2.Device.USPAgent.MTP.Protocol"><em>Protocol</em></a> is <a href="#D.Device:2.Device.USPAgent.SupportedProtocols.UDS"><em>UDS</em></a>.</p>

<p>This object is a member of a union, i.e., it is a member of a group of objects of which only one can exist at a given time.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPAgent.MTP.UDS.UnixDomainSocketRef">UnixDomainSocketRef</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.UnixDomainSockets.UnixDomainSocket."><em>UnixDomainSockets.UnixDomainSocket.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. A reference to the Unix Domain Socket used by this Agent when
communicating via the UDS MTP.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.Controller.">Device.USPAgent.Controller.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Each instance of this table represents a USP Controller that has access
to this USP Agent.</p>

<p>On the deletion of an entry from this table, the Agent MUST send the
ObjectDeletion notification to all subscribed recipients, even if the
recipient is the deleted Controller itself. This notification is the
last notification sent to this Controller.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.USPAgent.Controller.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.USPAgent.Controller.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.USPAgent.Controller.EndpointID"><em>EndpointID</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.Controller.Credential">Credential</span></td>
<td>string[]</td>
<td>W</td>
<td>Comma-separated list of strings, the set of certificates from <a href="#D.Device:2.Device.USPAgent.Certificate."><em>Certificate.{i}</em></a> that a Controller can present for use in authenticating the identity of this <a href="#D.Device:2.Device.USPAgent.Controller."><em>Controller</em></a> instance.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <em>string[]</em> syntax <em>[]</em> list</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.">Device.USPAgent.Controller.{i}.MTP.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Each instance of this table represents a MTP used by this Controller.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.USPAgent.Controller.MTP.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.USPAgent.Controller.MTP.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.USPAgent.Controller.MTP.Protocol"><em>Protocol</em></a>.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.USPAgent.Controller.MTP.UDS."><em>UDS.</em></a> object</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.Protocol">Protocol</span></td>
<td>string</td>
<td>W</td>
<td><p>The value MUST be a member of the list reported by the <a href="#D.Device:2.Device.USPAgent.SupportedProtocols"><em>SupportedProtocols</em></a> parameter. The Message Transport Protocol (MTP) to be used for communications by
a USP Endpoint.</p>

<p>This parameter discriminates between the <a href="#D.Device:2.Device.USPAgent.Controller.MTP.STOMP."><em>STOMP</em></a>, <a href="#D.Device:2.Device.USPAgent.Controller.MTP.WebSocket."><em>WebSocket</em></a>, <a href="#D.Device:2.Device.USPAgent.Controller.MTP.MQTT."><em>MQTT</em></a>, <a href="#D.Device:2.Device.USPAgent.Controller.MTP.UDS."><em>UDS</em></a> union objects.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string</em> syntax <em>WebSocket</em> default</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.STOMP.">Device.USPAgent.Controller.{i}.MTP.{i}.STOMP.</span></td>
<td><span title="object(0:1)">object(0:1)</span></td>
<td>R</td>
<td><p>If the USP Endpoint uses the STOMP Message Transport Protocol (MTP),
then this object contains STOMP Client specific configuration
parameters related to how this Controller communicates with the STOMP
Server.</p>

<p>This object MUST be present if, and only if, <a href="#D.Device:2.Device.USPAgent.Controller.MTP.Protocol"><em>Protocol</em></a> is <a href="#D.Device:2.Device.USPAgent.SupportedProtocols.STOMP"><em>STOMP</em></a>.</p>

<p>This object is a member of a union, i.e., it is a member of a group of objects of which only one can exist at a given time.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.USPAgent.Controller.MTP.STOMP.USPServiceRef"><em>USPServiceRef</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.STOMP.USPServiceRef">USPServiceRef</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.USPServices.USPService."><em>USPServices.USPService.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. A reference to the USP Service associated with this Agent when
communicating via the STOMP MTP.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.WebSocket.">Device.USPAgent.Controller.{i}.MTP.{i}.WebSocket.</span></td>
<td><span title="object(0:1)">object(0:1)</span></td>
<td>R</td>
<td><p>If the USP Endpoint uses the WebSocket Message Transport Protocol (MTP)
as a WebSocket client, then this object contains WebSocket specific
configuration parameters.</p>

<p>This object MUST be present if, and only if, <a href="#D.Device:2.Device.USPAgent.Controller.MTP.Protocol"><em>Protocol</em></a> is <a href="#D.Device:2.Device.USPAgent.SupportedProtocols.WebSocket"><em>WebSocket</em></a>.</p>

<p>This object is a member of a union, i.e., it is a member of a group of objects of which only one can exist at a given time.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.USPAgent.Controller.MTP.WebSocket.USPServiceRef"><em>USPServiceRef</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody class="showable">
<tr class="obsoleted-parameter">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.WebSocket.IsEncrypted">IsEncrypted</span></td>
<td>boolean</td>
<td>R</td>
<td><div class="hide">This parameter represents whether or not communications that utilize this <a href="#D.Device:2.Device.USPAgent.Controller.MTP.WebSocket."><em>WebSocket</em></a> object instance are encrypted.</div>

<div class="hide">This parameter was DEPRECATED in 2.14 because the <a href="#D.Device:2.Device.USPAgent.Controller.MTP.WebSocket.EnableEncryption"><em>EnableEncryption</em></a> parameter will dictate whether this <a href="#D.Device:2.Device.USPAgent.Controller.MTP.WebSocket."><em>WebSocket</em></a> is or is not encrypted.</div>

<div class="inserted"><div class="chevron">This parameter was OBSOLETED in 2.16.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div></div></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.WebSocket.USPServiceRef">USPServiceRef</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.USPServices.USPService."><em>USPServices.USPService.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. A reference to the USP Service associated with this Agent when
communicating via the WebSocket MTP.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.MQTT.">Device.USPAgent.Controller.{i}.MTP.{i}.MQTT.</span></td>
<td><span title="object(0:1)">object(0:1)</span></td>
<td>R</td>
<td><p>If the USP Endpoint uses the MQTT Message Transport Protocol (MTP),
then this object contains MQTT Client specific configuration parameters
related to how this Controller communicates with the MQTT broker.</p>

<p>This object MUST be present if, and only if, <a href="#D.Device:2.Device.USPAgent.Controller.MTP.Protocol"><em>Protocol</em></a> is <a href="#D.Device:2.Device.USPAgent.SupportedProtocols.MQTT"><em>MQTT</em></a>.</p>

<p>This object is a member of a union, i.e., it is a member of a group of objects of which only one can exist at a given time.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.USPAgent.Controller.MTP.MQTT.AgentMTPReference"><em>AgentMTPReference</em></a> parameter</li>
<li>Added <a href="#D.Device:2.Device.USPAgent.Controller.MTP.MQTT.USPServiceRef"><em>USPServiceRef</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody class="showable">
<tr class="deprecated-parameter">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.MQTT.Reference">Reference</span></td>
<td>string</td>
<td>W</td>
<td><div class="hide">The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.MQTT.Client."><em>MQTT.Client.</em></a> table. A reference to the MQTT Client used by this Controller when communicating via the MQTT MTP.</div>

<div class="inserted"><div class="chevron">This parameter was DEPRECATED in 2.16<span class="hide"> because <a href="#D.Device:2.Device.USPAgent.Controller.MTP.MQTT.AgentMTPReference"><em>AgentMTPReference</em></a> was added</span>.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added status = <em>deprecated</em></li></ul></div></div></td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.15</td></tr></tbody>
<tbody>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.MQTT.AgentMTPReference">AgentMTPReference</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of the <a href="#D.Device:2.Device.USPAgent.MTP."><em>MTP.</em></a> object instance containing the
Response Topic used by this Controller when communicating via the
MQTT MTP. If the referenced object is deleted, the parameter value MUST be set to an empty string.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.MQTT.USPServiceRef">USPServiceRef</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.USPServices.USPService."><em>USPServices.USPService.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. A reference to the USP Service associated with this Agent when
communicating via the MQTT MTP.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object inserted">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.UDS.">Device.USPAgent.Controller.{i}.MTP.{i}.UDS.</span></td>
<td><span title="object(0:1)">object(0:1)</span></td>
<td>R</td>
<td><p>If the USP Endpoint uses the Unix Domain Socket (UDS) Message Transport
Protocol (MTP), then this object contains UDS Client specific
configuration parameters related to how the Controller communicates
with the UDS Server.</p>

<p>This object MUST be present if, and only if, <a href="#D.Device:2.Device.USPAgent.Controller.MTP.Protocol"><em>Protocol</em></a> is <a href="#D.Device:2.Device.USPAgent.SupportedProtocols.UDS"><em>UDS</em></a>.</p>

<p>This object is a member of a union, i.e., it is a member of a group of objects of which only one can exist at a given time.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.UDS.UnixDomainSocketRef">UnixDomainSocketRef</span></td>
<td>string</td>
<td>W</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.UnixDomainSockets.UnixDomainSocket."><em>UnixDomainSockets.UnixDomainSocket.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. A reference to the Unix Domain Socket used by this Agent when
communicating via the UDS MTP.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPAgent.Controller.MTP.UDS.USPServiceRef">USPServiceRef</span></td>
<td>string</td>
<td>R</td>
<td>The value MUST be the Path Name of a row in the <a href="#D.Device:2.Device.USPServices.USPService."><em>USPServices.USPService.</em></a> table. If the referenced object is deleted, the parameter value MUST be set to an empty string. A reference to the USP Service associated with this Agent when
communicating via the UDS MTP.</td>
<td><em>&lt;Empty&gt;</em></td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.">Device.USPAgent.ControllerTrust.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>This object contains information that an Agent applies when
establishing a trust relationship with a Controller.

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Added <a href="#D.Device:2.Device.USPAgent.ControllerTrust.SecuredRoles"><em>SecuredRoles</em></a> parameter</li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter inserted">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.SecuredRoles">SecuredRoles</span></td>
<td>string[]</td>
<td>W</td>
<td><p>Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role."><em>Role.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. Comma-separated list of strings, each entry is a Role that is associated with Controllers to
indicate their access to secured parameters (e.g.
<a href="#D.Device:2.Device.WiFi.AccessPoint.Security.WEPKey"><em>WiFi.AccessPoint.{i}.Security.WEPKey</em></a>). The value of the
<em>SecuredRoles</em> parameter is appended to the
<a href="#D.Device:2.Device.USPAgent.Controller.AssignedRole"><em>Controller.{i}.AssignedRole</em></a> parameter.</p>

<p>Only Controllers with a secured role assigned (and the appropriate
permissions set) MUST be able to have access to secured parameters
content.</p></td>
<td>-</td>
<td>2.16</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.Role.">Device.USPAgent.ControllerTrust.Role.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Each instance of this table represents a Role that can be assigned to
or inherited by a Controller via the Controller Trust mechanism. The
Role contains a set of permissions that determine how the Controller
can interact with the data model.</p>

<p>If multiple permission entries associated with this table contain a
Target that evaluates to the same instantiated Object/Parameter for
multiple Roles, then the permissions to be used are a union of the
identified permissions.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role.Name"><em>Name</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.">Device.USPAgent.ControllerTrust.Role.{i}.Permission.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Each instance of this table represents the permissions that are
extended to a set of Targets for a specified Role.</p>

<p>If there are multiple entries in this table for a specific Role where
the Targets overlap, the permissions for the entry with the highest
value takes priority over all others.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with a given value for <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.Order"><em>Order</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.Param">Param</span></td>
<td>string(4)</td>
<td>W</td>
<td><p>The permissions of a Role for the specified Targets.</p>

<p>A string of 4 characters where each character represents a permission (&ldquo;r&rdquo; for Read, &ldquo;w&rdquo; for Write, &ldquo;x&rdquo; for Execute“, and &ldquo;n&rdquo; for Notify).</p>

<p>The string is always in the same order (rwxn) and the lack of a permission is signified by a &ldquo;-&rdquo; character (e.g., r–n).</p>

<p>The following describes the meaning of the permissions for Parameter type of Targets:</p>

<ol>
<li>Read: Grants the capability to read the value of the Parameter via Get and read the meta-information of the Parameter via GetSupportedDM.</li>
<li>Write: Grants the capability to update the value of the Parameter via Add or Set.</li>
<li>Execute: Grants no capabilities; Parameters can not be executed.</li>
<li>Notify: Grants the capability to <span class="removed">use</span><span class="inserted">receive Notify Messages of type ValueChange for</span> this <span class="removed">Parameter in the ReferenceList of a ValueChange Subscription.}}</span><span class="inserted">Parameter.</span></li></ol></td>
<td>----</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.Obj">Obj</span></td>
<td>string(4)</td>
<td>W</td>
<td><p>The permissions of a Role for the specified Targets.</p>

<p>A string of 4 characters where each character represents a permission (&ldquo;r&rdquo; for Read, &ldquo;w&rdquo; for Write, &ldquo;x&rdquo; for Execute“, and &ldquo;n&rdquo; for Notify).</p>

<p>The string is always in the same order (rwxn) and the lack of a permission is signified by a &ldquo;-&rdquo; character (e.g., r–n).</p>

<p>The following describes the meaning of the permissions for Object type of Targets:</p>

<ol>
<li>Read: Grants the capability to read the meta-information of the Object via GetSupportedDM.</li>
<li>Write: Grants no capabilities for Static Objects. Grants the capability to create a new instance of a Multi-Instanced Object via Add (e.g. Device.LocalAgent.Controller.).</li>
<li>Execute: Grants no capabilities; Objects are not executable and Commands are controlled by the CommandEventPermissions.</li>
<li>Notify: Grants the capability to <span class="removed">use</span><span class="inserted">receive Notify Messages of type ObjectCreation for</span> this Object <span class="removed">in the ReferenceList of an ObjectCreation (for multi-instance</span><span class="inserted">(multi-instance</span> objects <span class="removed">only) Subscription.}}</span><span class="inserted">only).</span></li></ol></td>
<td>----</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.InstantiatedObj">InstantiatedObj</span></td>
<td>string(4)</td>
<td>W</td>
<td><p>The permissions of a Role for the specified Targets.</p>

<p>A string of 4 characters where each character represents a permission (&ldquo;r&rdquo; for Read, &ldquo;w&rdquo; for Write, &ldquo;x&rdquo; for Execute“, and &ldquo;n&rdquo; for Notify).</p>

<p>The string is always in the same order (rwxn) and the lack of a permission is signified by a &ldquo;-&rdquo; character (e.g., r–n).</p>

<p>The following describes the meaning of the permissions for Instantiated Object type of Targets:</p>

<ol>
<li>Read: Grants the capability to read the instance numbers and unique keys of the Instantiated Object via GetInstances and read the value of Parameters related to the Instantiated Object via a Get containing a search expression or wildcard in place of the instance identifier.</li>
<li>Write: Grants the capability to remove an existing instance of an Instantiated Object via Delete (e.g. Device.LocalAgent.Controller.1.).</li>
<li>Execute: Grants no capabilities; Object Instances are not executable and Commands are controlled by the CommandEventPermissions.</li>
<li>Notify: Grants the capability to <span class="removed">use</span><span class="inserted">receive Notify Messages of type ObjectDeletion for</span> this Instantiated <span class="removed">Object in the ReferenceList of an ObjectDeletion Subscription.}}</span><span class="inserted">Object.</span></li></ol></td>
<td>----</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.CommandEvent">CommandEvent</span></td>
<td>string(4)</td>
<td>W</td>
<td><p>The permissions of a Role for the specified Targets.</p>

<p>A string of 4 characters where each character represents a permission (&ldquo;r&rdquo; for Read, &ldquo;w&rdquo; for Write, &ldquo;x&rdquo; for Execute“, and &ldquo;n&rdquo; for Notify).</p>

<p>The string is always in the same order (rwxn) and the lack of a permission is signified by a &ldquo;-&rdquo; character (e.g., r–n).</p>

<p>The following describes the meaning of the permissions for Command and Event type of Targets:</p>

<ol>
<li>Read: Grants the capability to read the meta-information of the Command (including input and output arguments) and Event (including arguments) via GetSupportedDM.</li>
<li>Write: Grants no capabilities; Commands are executed instead of written to and Events are read only.</li>
<li>Execute: Grants the capability to execute the Command via Operate, but grants no capabilities to an Event.</li>
<li>Notify: Grants the capability to <span class="removed">use</span><span class="inserted">receive Notify Messages of type OperationComplete for</span> this Event or <span class="removed">Command in the ReferenceList of an Event or OperationComplete Subscription.}}</span><span class="inserted">Command.</span></li></ol></td>
<td>----</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.Challenge.">Device.USPAgent.ControllerTrust.Challenge.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>Each instance of this table represents information that is used to
challenge a Controller in order to assign a Role to the Controller or
to determine the authenticity of a Certificate.</p>

<p>The Controller requests a type of challenge from an Agent using the
RequestChallenge command.</p>

<p>The Agent returns the value of the <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Challenge.Instruction"><em>Instruction</em></a> for that type
of challenge to the Controller which the Controller then provides a
third-party.</p>

<p>The third-party responds to the Instruction which the Controller then
sends to the Agent using the ChallengeResponse command.</p>

<p>The Agent verifies the response to the Challenges and executes an
implementation specific Agent logic in order to establish trust with
the Controller.</p>

<p>This could include (but is not limited to):</p>

<p>*Assignment of roles to the Controller is done by appending the
non-duplicate roles of the <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Challenge.Role"><em>Role</em></a> parameter to the value of
the <a href="#D.Device:2.Device.USPAgent.Controller.AssignedRole"><em>Controller.{i}.AssignedRole</em></a> parameter.</p>

<p>*Use the Controller’s certificate to which the challenge response was
received in order to authenticate the identity of the Controller.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Challenge.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.USPAgent.ControllerTrust.Challenge.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.USPAgent.ControllerTrust.Challenge.Value">Value</span></td>
<td>base64</td>
<td>W</td>
<td><p>The value of the challenge that is specific to the type of challenge.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>base64</em> syntax hidden = <em>true</em></li>
<li>Added <em>base64</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.">Device.ETSIM2M.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The <em>ETSIM2M</em> object represents the management object for the Remote
Entity Functions (REM) functions defined in the M2M Functional
Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>].</td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.">Device.ETSIM2M.SCL.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>This object represents an instance of a Service Capability Layer (SCL) for a M2M device or gateway.</p>

<p>The <em>SCL</em> MAY be maintained by the ACS or by the CPE.</p>

<p>When the <em>SCL</em> provides the administration of an SCL that is represented as a <strong>{{object: non-existent <span class="inserted">##.SoftwareModules.ExecutionUnit</span>}}</strong> the <em>SCL</em> is maintained in the <strong>{{param: non-existent <span class="inserted">##.SoftwareModules.ExecutionUnit.{i}.References</span>}}</strong> parameter.</p>

<p>Section 5.1.2 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the high level event flows for SCL registration.</p>

<p>Section 9.3.2.6.2 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the creation/registration of SCLs.</p>

<p>Section 9.3.2.6.4 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the update/re-registration of SCLs.</p>

<p>Section 9.3.2.6.5 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the deletion/deregistration of SCLs.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.ETSIM2M.SCL.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.ETSIM2M.SCL.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.AreaNwkDeviceInfoInstance.">Device.ETSIM2M.SCL.{i}.AreaNwkDeviceInfoInstance.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>R</td>
<td><p>The M2M Area Network Device Information provides the administration capability to the SCL for maintenance of M2M Devices (D’, d) that are attached to this <a href="#D.Device:2.Device.ETSIM2M.SCL."><em>SCL</em></a> instance.</p>

<p>While discovery and identification of devices by the M2M Gateway or Device (CPE) is implementation specific, each device is represented by an instance of the <strong>{{object: non-existent <span class="inserted">###.Hosts.Host</span>}}</strong> table.</p>

<p>When the M2M Device is managed by the CWMP endpoint of the CPE, the <em>AreaNwkDeviceInfoInstance</em> is expected to be referenced by an instance of one of the following tables:</p>

<p>*<strong>{{object: non-existent <span class="inserted">###.ManagementServer.EmbeddedDevice</span>}}</strong></p>

<p>*<strong>{{object: non-existent <span class="inserted">###.ManagementServer.VirtualDevice</span>}}</strong></p>

<p>Section 5.3.5 of the M2M Functional Architecture [<a href="#R.ETSIM2MFA">ETSIM2MFA</a>] describes the REM functionality expected of a SCL to a M2M Device.</p>

<p>This object instance provides the administration properties required by a SCL to remotely manage an instance of a M2M Device within a M2M area network.</p>

<p>A M2M Device is associated with an instance of a <a href="#D.Device:2.Device.ETSIM2M.SCL.AreaNwkInstance."><em>AreaNwkInstance</em></a>.</p>

<p>This table contains parameters and information of the M2M Device related to each <a href="#D.Device:2.Device.ETSIM2M.SCL.AreaNwkInstance."><em>AreaNwkInstance</em></a> instance.</p>

<p>Instances of this table are created and deleted by the CPE. The ACS MAY modify the writeable parameters of this object instance but it is possible that the value set by the ACS is not retained between reboots of the M2M Device.</p></td>
<td>-</td>
<td>2.6</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.AreaNwkDeviceInfoInstance.Host">Host</span></td>
<td>string[]</td>
<td>R</td>
<td>Comma-separated list of strings. Each list item MUST be the Path Name of the <strong>{{object: non-existent <span class="inserted">###.Hosts.Host</span>}}</strong> table entry that represents an active or inactive M2M Device. If the referenced object is deleted, the corresponding item MUST be removed from the list.</td>
<td>-</td>
<td>2.6</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.ETSIM2M.SCL.AreaNwkDeviceInfoInstance.ListOfDeviceNeighbors">ListOfDeviceNeighbors</span></td>
<td>string[]</td>
<td>R</td>
<td>Comma-separated list of strings. Each list item MUST be the Path Name of a row in the <a href="#D.Device:2.Device.Hosts.Host."><em>Hosts.Host.</em></a> table. If the referenced object is deleted, the corresponding item MUST be removed from the list. References all the <strong>{{object: non-existent <span class="inserted">###.Hosts.Host</span>}}</strong> table entries, whether active or inactive, that represent the reachable neighbors of this M2M Device (D’ or d).</td>
<td>-</td>
<td>2.6</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.STOMP.">Device.STOMP.</span></td>
<td><span title="object">object</span></td>
<td>R</td>
<td>The <em>STOMP</em> represents the STOMP capabilities of the device as
described in [<a href="#R.TR-369">TR-369</a>].</td>
<td>-</td>
<td>2.15</td></tr>
<tr class="object">
<td><span id="D.Device:2.Device.STOMP.Connection.">Device.STOMP.Connection.{i}.</span></td>
<td><span title="object(0:∞)">object(0:)</span></td>
<td>W</td>
<td><p>The <em>Connection</em> represents a STOMP connection between the Agent and a
STOMP server.</p>

<p>At most one entry in this table (regardless of whether or not it is enabled) can exist with a given value for <a href="#D.Device:2.Device.STOMP.Connection.Alias"><em>Alias</em></a>. On creation of a new table entry, the Agent MUST choose an initial value for <a href="#D.Device:2.Device.STOMP.Connection.Alias"><em>Alias</em></a> such that the new entry does not conflict with any existing entries.
At most one enabled entry in this table can exist with the same values for all of <a href="#D.Device:2.Device.STOMP.Connection.Host"><em>Host</em></a>, <a href="#D.Device:2.Device.STOMP.Connection.Username"><em>Username</em></a> and <a href="#D.Device:2.Device.STOMP.Connection.VirtualHost"><em>VirtualHost</em></a>.</p></td>
<td>-</td>
<td>2.15</td></tr>
<tr class="parameter">
<td><span id="D.Device:2.Device.STOMP.Connection.Password">Password</span></td>
<td>string(:256)</td>
<td>W</td>
<td><p>The password part of the credentials to be used when authenticating
this <a href="#D.Device:2.Device.STOMP.Connection."><em>Connection</em></a> during connection establishment with the STOMP
Server.</p>

<p>When read, this parameter returns an empty string, regardless of the actual value.</p>

<div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Removed <em>string(:256)</em> syntax hidden = <em>true</em></li>
<li>Added <em>string(:256)</em> syntax secured = <em>true</em></li></ul></div></td>
<td>-</td>
<td>2.15</td></tr></tbody>
<tbody class="showable">
<tr class="obsoleted-parameter">
<td><span id="D.Device:2.Device.STOMP.Connection.IsEncrypted">IsEncrypted</span></td>
<td>boolean</td>
<td>R</td>
<td><div class="hide">This parameter represents whether or not communications that utilize this <a href="#D.Device:2.Device.STOMP.Connection."><em>Connection</em></a> object instance are encrypted.</div>

<div class="hide">This parameter was DEPRECATED in 2.14 because the <a href="#D.Device:2.Device.STOMP.Connection.EnableEncryption"><em>EnableEncryption</em></a> parameter will dictate whether all connections for this STOMP instance are or are not encrypted.</div>

<div class="inserted"><div class="chevron">This parameter was OBSOLETED in 2.16.<span class="click"></span></div></div>

<div class="hide"><div class="diffs"><p><strong>Changes in 2.16:</strong></p>

<ul>
<li>Changed status = <em>deprecated</em> ⇒ <em>obsoleted</em></li></ul></div></div></td>
<td>-</td>
<td>2.15</td></tr></tbody></table>

<hr/>

<p>Generated by <a href="https://www.broadband-forum.org">Broadband Forum</a> <a href="https://pypi.org/project/bbfreport">bbfreport</a> v2.2.0 (2024-07-23 version) on 2024-07-23 at 11:08:14 UTC.<br/>report.py –include ../../install/cwmp –output <stdout> –transform diff –format markdown tr-181-2-15-1-cwmp.xml tr-181-2-16-0-cwmp.xml</p></div>

<div id="TOC"><h1 id="table-of-contents">Table of Contents</h1>

<ul class="collapsed expanded">
<li><a href="#data-types">Data Types</a></li>
<li><a href="#references">References</a></li>
<li><a href="#legend">Legend</a></li>
<li><span class="collapsible expandable"><a href="#device216-data-model">Device:2.16 Data Model</a></span>

<ul class="collapsed expanded">
<li><span class="collapsible expandable"><a href="#D.Device:2.Device.">Device.</a></span>

<ul class="collapsed expanded ordered">
<li><a href="#D.Device:2.Device.DeviceInfo.">DeviceInfo.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.ManagementServer.">ManagementServer.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.ManagementServer.ManageableDevice.">ManageableDevice.{i}.</a></li>
<li><a href="#D.Device:2.Device.ManagementServer.EmbeddedDevice.">EmbeddedDevice.{i}.</a></li>
<li><a href="#D.Device:2.Device.ManagementServer.VirtualDevice.">VirtualDevice.{i}.</a></li>
<li><a href="#D.Device:2.Device.DeviceInfo.FirmwareImage.">FirmwareImage.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Time.">Time.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Time.Client.">Client.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Time.Client.Authentication.">Authentication.</a></li>
<li><a href="#D.Device:2.Device.Time.Client.Stats.">Stats.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Time.Server.">Server.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Time.Server.Authentication.">Authentication.</a></li>
<li><a href="#D.Device:2.Device.Time.Server.Stats.">Stats.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.UserInterface.">UserInterface.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.UserInterface.HTTPAccess.">HTTPAccess.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.UserInterface.HTTPAccess.Session.">Session.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.UserInterface.RemoteAccess.">RemoteAccess.</a> [DEPRECATED]</li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DSL.">DSL.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DSL.Channel.">Channel.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DSL.BondingGroup.">BondingGroup.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DSL.BondingGroup.BondedChannel.">BondedChannel.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DSL.Diagnostics.">Diagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DSL.Diagnostics.SELTP.">SELTP.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.FAST.">FAST.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.FAST.Line.">Line.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Cellular.">Cellular.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Cellular.Interface.">Interface.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Cellular.Interface.USIM.">USIM.</a></li></ul></li>
<li><a href="#D.Device:2.Device.Cellular.AccessPoint.">AccessPoint.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.ATM.">ATM.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.ATM.Link.">Link.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DOCSIS.">DOCSIS.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.DOCSIS.DownstreamChannel.">DownstreamChannel.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DOCSIS.DownstreamChannel.SignalQuality.">SignalQuality.</a></li>
<li><a href="#D.Device:2.Device.DOCSIS.DownstreamChannel.SignalQualityExt.">SignalQualityExt.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DOCSIS.UpstreamChannel.">UpstreamChannel.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DOCSIS.UpstreamChannel.Status.">Status.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.">SpectrumAnalysis.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DOCSIS.SpectrumAnalysis.Result.">Result.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.PTM.">PTM.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.PTM.Link.">Link.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Ethernet.">Ethernet.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Ethernet.Interface.">Interface.{i}.</a></li>
<li><a href="#D.Device:2.Device.Ethernet.Link.">Link.{i}.</a></li>
<li><a href="#D.Device:2.Device.Ethernet.RMONStats.">RMONStats.{i}.</a></li>
<li><a href="#D.Device:2.Device.Ethernet.LAG.">LAG.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.USB.">USB.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.USB.Interface.">Interface.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.HPNA.">HPNA.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.HPNA.Interface.">Interface.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.HPNA.Interface.QoS.">QoS.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.HPNA.Interface.QoS.FlowSpec.">FlowSpec.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.MoCA.">MoCA.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.MoCA.Interface.">Interface.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Ghn.">Ghn.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Ghn.Interface.">Interface.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Ghn.Diagnostics.">Diagnostics.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.">PerformanceMonitoring.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.">Channels.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Ghn.Diagnostics.PerformanceMonitoring.Channels.Channel.">Channel.{i}.</a></li></ul></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.HomePlug.">HomePlug.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.HomePlug.Interface.">Interface.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.UPA.">UPA.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.UPA.Interface.">Interface.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.">WiFi.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.MultiAP.">MultiAP.</a> [DEPRECATED]</span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.">APDevice.{i}.</a> [DEPRECATED]</span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.">Radio.{i}.</a> [DEPRECATED]</span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.MultiAP.APDevice.Radio.AP.">AP.{i}.</a> [DEPRECATED]</li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.">DataElements.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.">Network.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.SSID.">SSID.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.">Device.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.IEEE1905Security.">IEEE1905Security.{i}.</a></li>
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.AnticipatedChannels.">AnticipatedChannels.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.">MultiAPDevice.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.">Backhaul.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.MultiAPDevice.Backhaul.Stats.">Stats.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.">Radio.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanCapability.">ScanCapability.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.ScanCapability.OpClassChannels.">OpClassChannels.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.">CACCapability.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.CACMethod.">CACMethod.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CACCapability.CACMethod.OpClassChannels.">OpClassChannels.{i}.</a></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.Capabilities.">Capabilities.</a></li>
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.CurrentOperatingClassProfile.">CurrentOperatingClassProfile.{i}.</a></li>
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.DisAllowedOpClassChannels.">DisAllowedOpClassChannels.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.">BSS.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.QMDescriptor.">QMDescriptor.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.">STA.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.BSS.STA.MultiAPSTA.">MultiAPSTA.</a></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.DataElements.Network.Device.Radio.UnassociatedSTA.">UnassociatedSTA.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.DataElements.AssociationEvent.">AssociationEvent.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.DataElements.AssociationEvent.AssociationEventData.">AssociationEventData.{i}.</a></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.Radio.">Radio.{i}.</a></li>
<li><a href="#D.Device:2.Device.WiFi.CCAMeasurementDiagnostic.">CCAMeasurementDiagnostic.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.">NeighboringWiFiDiagnostic.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.NeighboringWiFiDiagnostic.Result.">Result.{i}.</a></li>
<li><a href="#D.Device:2.Device.WiFi.Radio.Stats.">Stats.</a></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.SSID.">SSID.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.AccessPoint.">AccessPoint.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.AccessPoint.Security.">Security.</a></li>
<li><a href="#D.Device:2.Device.WiFi.AccessPoint.WPS.">WPS.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.">AssociatedDevice.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.AccessPoint.AssociatedDevice.Stats.">Stats.</a></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.AccessPoint.Accounting.">Accounting.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.EndPoint.">EndPoint.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.EndPoint.Security.">Security.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.WiFi.EndPoint.Profile.">Profile.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.WiFi.EndPoint.Profile.Security.">Security.</a></li></ul></li>
<li><a href="#D.Device:2.Device.WiFi.EndPoint.WPS.">WPS.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.ZigBee.">ZigBee.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.ZigBee.Interface.">Interface.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Bridging.">Bridging.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Bridging.Bridge.">Bridge.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Bridging.Bridge.STP.">STP.</a></li>
<li><a href="#D.Device:2.Device.Bridging.Bridge.Port.">Port.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.Bridging.Filter.">Filter.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.PPP.">PPP.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.PPP.Interface.">Interface.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IP.">IP.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.IP.Interface.">Interface.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IP.Interface.IPv6Prefix.">IPv6Prefix.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IP.Diagnostics.">Diagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IP.Diagnostics.IPPing.">IPPing.</a></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.TraceRoute.">TraceRoute.</a></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.">DownloadDiagnostics.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.">UploadDiagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.PerConnectionResult.">PerConnectionResult.{i}.</a></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.UploadDiagnostics.IncrementalResult.">IncrementalResult.{i}.</a></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.PerConnectionResult.">PerConnectionResult.{i}.</a></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.DownloadDiagnostics.IncrementalResult.">IncrementalResult.{i}.</a></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.TraceRoute.RouteHops.">RouteHops.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.">UDPEchoDiagnostics.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IP.Diagnostics.IPLayerCapacityMetrics.">IPLayerCapacityMetrics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IP.Diagnostics.UDPEchoDiagnostics.IndividualPacketResult.">IndividualPacketResult.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.IP.Diagnostics.ServerSelectionDiagnostics.">ServerSelectionDiagnostics.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IPsec.">IPsec.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IPsec.Stats.">Stats.</a></li>
<li><a href="#D.Device:2.Device.IPsec.Profile.">Profile.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IPsec.Tunnel.">Tunnel.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IPsec.Tunnel.Stats.">Stats.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.MAP.">MAP.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.MAP.Domain.">Domain.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.">Routing.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.Router.">Router.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Routing.Router.IPv4Forwarding.">IPv4Forwarding.{i}.</a></li>
<li><a href="#D.Device:2.Device.Routing.Router.IPv6Forwarding.">IPv6Forwarding.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.RouteInformation.">RouteInformation.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.">InterfaceSetting.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Routing.RouteInformation.InterfaceSetting.Option.">Option.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.Babel.">Babel.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Routing.Babel.InterfaceSetting.">InterfaceSetting.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.Babel.MACKeySet.">MACKeySet.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Routing.Babel.MACKeySet.MACKey.">MACKey.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Routing.Babel.DTLSCertSet.">DTLSCertSet.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Routing.Babel.DTLSCertSet.DTLSCert.">DTLSCert.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.RouterAdvertisement.">RouterAdvertisement.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.RouterAdvertisement.InterfaceSetting.">InterfaceSetting.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IPv6rd.">IPv6rd.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IPv6rd.InterfaceSetting.">InterfaceSetting.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DSLite.">DSLite.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DSLite.InterfaceSetting.">InterfaceSetting.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.QoS.">QoS.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.QoS.Classification.">Classification.{i}.</a></li>
<li><a href="#D.Device:2.Device.QoS.Flow.">Flow.{i}.</a></li>
<li><a href="#D.Device:2.Device.QoS.Queue.">Queue.{i}.</a></li>
<li><a href="#D.Device:2.Device.QoS.Shaper.">Shaper.{i}.</a></li>
<li><a href="#D.Device:2.Device.QoS.Scheduler.">Scheduler.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.LANConfigSecurity.">LANConfigSecurity.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Hosts.">Hosts.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Hosts.Host.">Host.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.">DNS.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.Client.">Client.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DNS.Client.Server.">Server.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.Relay.">Relay.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DNS.Relay.Forwarding.">Forwarding.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.Diagnostics.">Diagnostics.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DNS.Diagnostics.NSLookupDiagnostics.">NSLookupDiagnostics.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DNS.SD.">SD.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DNS.SD.Service.">Service.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.NAT.">NAT.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.NAT.InterfaceSetting.">InterfaceSetting.{i}.</a></li>
<li><a href="#D.Device:2.Device.NAT.PortMapping.">PortMapping.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.NAT.PortTrigger.">PortTrigger.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.NAT.PortTrigger.Rule.">Rule.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.PCP.">PCP.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.PCP.Client.">Client.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DHCPv4.">DHCPv4.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.DHCPv4.Server.">Server.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DHCPv4.Server.Pool.">Pool.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DHCPv6.">DHCPv6.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.DHCPv6.Server.">Server.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DHCPv6.Server.Pool.">Pool.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IEEE8021x.">IEEE8021x.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.IEEE8021x.Supplicant.">Supplicant.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IEEE8021x.Supplicant.EAPMD5.">EAPMD5.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Users.">Users.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Users.User.">User.{i}.</a></li>
<li><a href="#D.Device:2.Device.Users.SupportedShell.">SupportedShell.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.UPnP.">UPnP.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.UPnP.Discovery.">Discovery.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.UPnP.Discovery.RootDevice.">RootDevice.{i}.</a></li>
<li><a href="#D.Device:2.Device.UPnP.Discovery.Device.">Device.{i}.</a></li>
<li><a href="#D.Device:2.Device.UPnP.Discovery.Service.">Service.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.UPnP.Description.">Description.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.UPnP.Description.DeviceDescription.">DeviceDescription.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Firewall.">Firewall.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Firewall.Level.">Level.{i}.</a></li>
<li><a href="#D.Device:2.Device.Firewall.Policy.">Policy.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Firewall.Chain.">Chain.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Firewall.Chain.Rule.">Rule.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.Firewall.Pinhole.">Pinhole.{i}.</a></li>
<li><a href="#D.Device:2.Device.Firewall.DMZ.">DMZ.{i}.</a></li>
<li><a href="#D.Device:2.Device.Firewall.Service.">Service.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.PeriodicStatistics.">PeriodicStatistics.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.">SampleSet.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.PeriodicStatistics.SampleSet.Parameter.">Parameter.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.FaultMgmt.">FaultMgmt.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.FaultMgmt.SupportedAlarm.">SupportedAlarm.{i}.</a></li>
<li><a href="#D.Device:2.Device.FaultMgmt.CurrentAlarm.">CurrentAlarm.{i}.</a></li>
<li><a href="#D.Device:2.Device.FaultMgmt.HistoryEvent.">HistoryEvent.{i}.</a></li>
<li><a href="#D.Device:2.Device.FaultMgmt.ExpeditedEvent.">ExpeditedEvent.{i}.</a></li>
<li><a href="#D.Device:2.Device.FaultMgmt.QueuedEvent.">QueuedEvent.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.FAP.">FAP.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.FAP.GPS.">GPS.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.FAP.GPS.AGPSServerConfig.">AGPSServerConfig.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.FAP.PerfMgmt.">PerfMgmt.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.FAP.PerfMgmt.Config.">Config.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.BulkData.">BulkData.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.BulkData.Profile.">Profile.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.BulkData.Profile.Parameter.">Parameter.{i}.</a></li>
<li><a href="#D.Device:2.Device.BulkData.Profile.HTTP.">HTTP.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.SoftwareModules.">SoftwareModules.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.">ExecEnvClass.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.SoftwareModules.ExecEnvClass.Capability.">Capability.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.SoftwareModules.ExecEnv.">ExecEnv.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.SoftwareModules.ExecEnv.ApplicationData.">ApplicationData.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.SoftwareModules.DeploymentUnit.">DeploymentUnit.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.">ExecutionUnit.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.AutoRestart.">AutoRestart.</a></li>
<li><a href="#D.Device:2.Device.SoftwareModules.ExecutionUnit.HostObject.">HostObject.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.XMPP.">XMPP.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.XMPP.Connection.">Connection.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.IEEE1905.">IEEE1905.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.IEEE1905.AL.">AL.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.IEEE1905.AL.Security.">Security.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.MQTT.">MQTT.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.MQTT.Client.">Client.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.MQTT.Broker.">Broker.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.MQTT.Broker.Bridge.">Bridge.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.DynamicDNS.">DynamicDNS.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.DynamicDNS.Client.">Client.{i}.</a></li>
<li><a href="#D.Device:2.Device.DynamicDNS.Server.">Server.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.LMAP.">LMAP.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.LMAP.MeasurementAgent.">MeasurementAgent.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.LMAP.MeasurementAgent.Controller.">Controller.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.">Schedule.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.">Action.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.LMAP.MeasurementAgent.Schedule.Action.Option.">Option.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.LMAP.MeasurementAgent.Task.">Task.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.LMAP.MeasurementAgent.Task.Option.">Option.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.PDU.">PDU.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.PDU.Session.">Session.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.PDU.Session.PCO.">PCO.</a></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.FWE.">FWE.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.Logical.">Logical.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.Logical.Interface.">Interface.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.Logical.Interface.Stats.">Stats.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.XPON.">XPON.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.XPON.ONU.">ONU.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.XPON.ONU.SoftwareImage.">SoftwareImage.{i}.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.">EthernetUNI.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.XPON.ONU.EthernetUNI.Stats.">Stats.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.XPON.ONU.ANI.">ANI.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.Stats.">Stats.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.">TC.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.ONUActivation.">ONUActivation.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.PM.">PM.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.PM.PHY.">PHY.</a></li>
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.PM.GEM.">GEM.</a></li>
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.PM.PLOAM.">PLOAM.</a></li>
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.PM.OMCI.">OMCI.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.GEM.">GEM.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.">Port.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.GEM.Port.PM.">PM.</a></li></ul></li></ul></li>
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.PerformanceThresholds.">PerformanceThresholds.</a></li>
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.TC.Alarms.">Alarms.</a></li></ul></li>
<li><a href="#D.Device:2.Device.XPON.ONU.ANI.Transceiver.">Transceiver.{i}.</a></li></ul></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.SSH.">SSH.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.SSH.Server.">Server.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.SSH.Server.Session.">Session.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.SSH.AuthorizedKey.">AuthorizedKey.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.UnixDomainSockets.">UnixDomainSockets.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.UnixDomainSockets.UnixDomainSocket.">UnixDomainSocket.{i}.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.USPServices.">USPServices.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.USPServices.USPService.">USPService.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.PacketCaptureDiagnostics.">PacketCaptureDiagnostics.</a></li>
<li><span class="expandable"><a href="#D.Device:2.Device.USPAgent.">USPAgent.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.USPAgent.MTP.">MTP.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.USPAgent.MTP.CoAP.">CoAP.</a> [DEPRECATED]</li>
<li><a href="#D.Device:2.Device.USPAgent.MTP.WebSocket.">WebSocket.</a></li>
<li><a href="#D.Device:2.Device.USPAgent.MTP.UDS.">UDS.</a></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.USPAgent.Controller.">Controller.{i}.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.USPAgent.Controller.MTP.">MTP.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.USPAgent.Controller.MTP.STOMP.">STOMP.</a></li>
<li><a href="#D.Device:2.Device.USPAgent.Controller.MTP.WebSocket.">WebSocket.</a></li>
<li><a href="#D.Device:2.Device.USPAgent.Controller.MTP.MQTT.">MQTT.</a></li>
<li><a href="#D.Device:2.Device.USPAgent.Controller.MTP.UDS.">UDS.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.USPAgent.ControllerTrust.">ControllerTrust.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role.">Role.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.USPAgent.ControllerTrust.Role.Permission.">Permission.{i}.</a></li></ul></li>
<li><a href="#D.Device:2.Device.USPAgent.ControllerTrust.Challenge.">Challenge.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.ETSIM2M.">ETSIM2M.</a></span>

<ul class="collapsed">
<li><span class="expandable"><a href="#D.Device:2.Device.ETSIM2M.SCL.">SCL.{i}.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.ETSIM2M.SCL.AreaNwkDeviceInfoInstance.">AreaNwkDeviceInfoInstance.{i}.</a></li></ul></li></ul></li>
<li><span class="expandable"><a href="#D.Device:2.Device.STOMP.">STOMP.</a></span>

<ul class="collapsed">
<li><a href="#D.Device:2.Device.STOMP.Connection.">Connection.{i}.</a></li></ul></li></ul></li></ul></li></ul></div>
</body>
</html>
